You didn't even mention the biggest failing of them. Accessibility.
SPA's being inherently JavaScript driven, to the point users get a big blank page when scripting is off/blocked/unavailable makes them an inherent accessibility violation, at least if you put them on a normal website public-facing to be run in a browser.
Just like 90%+ of the crap people slop together with the bloated, incompetent, train wreck laundry lists of how NOT to build websites that are front end frameworks.
NOT that they have to be. I'm often amused when people blow megabytes of scripttardery to build a "SPA" of a website that if you put all the content into a single page-worth of markup, WITH hooks to paginate it via hash links and CSS3's :target, wouldn't even be a quarter of a megabyte of HTML.
But again, maybe if people stopped wasting 100k of HTML to do 16k's job, 500k of CSS to do 32k's job, and two megabytes or more of scripttardery on pages that could get by with under 64k of JS (if any), and bothered having separation of presentation from content so that presentation can be cached in an external CSS file... MAYBE, just maybe they wouldn't dive for dumbass ignorant incompetent trash like SPA's because of the jerkwad paranoid BS that "pageloads r teh evuls!"