I find it bizarre how such a site ended up an SPA. Nothing about it suggests SPA. This could just be a website and would be supported by any web browser, but instead they've implemented a crap custom browser and web in JavaScript.
The map kind of does. It's really nice to just click on different dots and see different cities with no latency or page load. I think the right way to implement this is as an SPA with `history.push` for shareable URLs.
Not without latency. Unless you make sure everything's on the edge? But that is way more complicated anyways — now you have two systems to maintain, instead of just a single client-only JS app.