And yet 90+% of those SPA-apps have worse performance.
A dresser can be hand crafted from solid oak and built to last centuries, or it can be flat-pack barely better than cardboard with fake plastic oak veneer.
You can make a fully functional SPA with less than 1mb of payload, or you can create the hot garbage that is Jack In The Box's menu website, that delivers 48mb of insanely bloated JS garbage. And I only harp on them because it's the single worst SPA example I've seen to date.
For that matter, I think with some nice tooling HTMX can be a pretty great experience for most in-between usage.