The hash state has been there since Instant Search was launched in 2010.
Not to mention, why fix something that isn't broken? There are cases for it, but it's roughly the same tech that it was 4 years ago. What would they gain by spending developer time on it?
Rare on today's web, but still a thing.
Manually editing the link causes that same fetch-render-refetch flow.
Edit: Oh, you were asking about pushstate. No, that specifically fixes the problem with the double fetch, so long as the server side and client side do the right thing to make the user see the same page for the same URL.
Pushstate just lets the JS client modify the URL without triggering a page reload, so the client can change the actual query param instead of the hash.