Actually I’ve also found a number of other websites suggesting to double the default language hreflang with ‘x-default’, including Google itself (more or less). Here you can see John Mueller from Google suggesting it.
I’m in a similar situation.
My website has this url structure through Polylang
http://www.gianniriva.com/en/ (default language)
http://www.gianniriva.com/it/
I don’t detect browser language for the auto-redirecting home.
If I don’t check “Hide URL language information for default language” Polylang returns:
<link rel="alternate" href="http://www.gianniriva.com/en/" hreflang="en" />
<link rel="alternate" href="http://www.gianniriva.com/it/" hreflang="it" />
<link rel="alternate" href="http://www.gianniriva.com" hreflang="x-default" />
If I do check “Hide URL language information for default language” Polylang returns:
<link rel="alternate" href="http://www.gianniriva.com/" hreflang="en" />
<link rel="alternate" href="http://www.gianniriva.com/it/" hreflang="it" />
Meaning it removes x-default.
I’m not sure about the way to go: /en/ (default language) subfolder or not?