Single Page Applications use the History API to create a working back/forward history within the SPA. This will cause you to navigate away on use, and potentially lose data.

Why don't they just use # hash urls for their in-SPA page urls instead? That's what Elm and Elixir LiveView both do.

That sounds like a design failure.

Well, yes, but that's why it's behind an about:config flag and users should not enable it without understanding its effects.

It's not, I don't know why you'd think that.