I share your sentiments about SPA. SPA makes web development far more complicated than it needs to be. While I understand the theoretical reasons for SPA’s existence, in practice, I don’t believe most developers need SPA. I certainly don’t.
I write web applications using web2py/Python and Beego/Go, and I’ve never noticed any significant performance issues that would compel me to consider SPA. SPA is over-engineered to solve a problem that rarely affects users.
As you point out, SPA is fraught with all kinds of potential downsides. Why make things so complicated for so little return?