I can answer the last part of your question:
should all web apps now be SPAs
No. God no.
EDIT: To elaboreate... SPA works pretty well for apps which are meant to remain open/active for long periods of time.
Twitter, for instance. Or Instagram.
These are typically opened once (the initial download), then the user spents next fifteen hours surfing inside the app. It makes sense (from purely utilitaristic view point) to avoid downloading views from server again and again. Plus SPAs look flashy and shit.
Most large-scale sites are nothing like Twitter, though. Take a Wikipedia, for example. User comes in, reads one article, and leaves. It makes little sense to download heavy JS code for that.