My number one annoyance (with Firefox and Auto-Discard extension) is when I open back my tab and get a redirection to some login page. Login, get sent to homepage. Back button sends me to login page. No way to get back to the actual tab I'd left there...
That tab is then lost forever, unless I can find it in the history from whenever I had opened the tab.
Two web apps I use every day at work have this behaviour when I look away and my session times out. Both of them break web expectations by having the same generic URL for every page. I leave half a dozen tabs open, come back later or the next day and if I'm not careful to login again in a new tab before I refresh them, they're lost. It's the kind of thing which makes me convinced the developers never use their own system, never sit with real users, and think a lot less of the vendor even though I have no power to influence the decision to renew them or not.
I think one problem of JavaScript routing is that it needs two groups of people to communicate for it to work: the ops people configuring nginx/CDN need to talk with the JavaScript devs making the SPA. Worse, if they get it wrong it will break in subtle ways (e.g. appear to work unless you reload of share a direct link).
That happens because someone use js to redirect and didn't use history.replace in the js redirection page to remove the redirection page from history. End up leaving the redirection page in the history. And cause the back button broken.
I have a real mouse. I didn't know that until yet!
The long click has still the advantage that you don't need to click more than once: You can just hold the button, mouse-over the wanted entry, and than release the button triggering navigation to the history entry currently under the cursor.
That tab is then lost forever, unless I can find it in the history from whenever I had opened the tab.