Both hashtags and pushState are ways of changing the page and the URL using Javascript. pushState is the "legal" way, which changes the page's URL (i.e. twitter/posts/1 -> twitter/posts/2). hashtags technically don't change the page, they change the part of the URL after the hash (i.e. twitter/posts#1 -> twitter/posts#2).
hashtags are used because older browsers don't let you use pushState. pushState is used because it's more correct, and doesn't exploit a hacky loophole.
Both are used because they are faster than a whole new page request, and they let you share the post by cutting and pasting the URL in your address bar.
But it's not without its idiotic blunders. Topping the list is Apple's insistence that your user ID be an E-mail address. That's not just a bad idea, but it has resulted in untold numbers of people with numerous Apple IDs and content bought with all of them.
I actually think this is a good idea. An email address is unique and easy to remember for the user.
The stupid stuff is the following:
This was not always required. I think there was a transition period were it was not enforced but only advised on the register page. And also somewhat ambigous like "Enter here your Apple ID username eg. BruceWayne@mac.com" I know two people who entered their (company) name in such a way, but without really having a dotmac address! And then dotmac was changed to Mobile Me and even though me.com was retained for iCloud I couldn't use an "old" Mobile Me email-adress, which was sad because it was a nice address with the initials of my name, but had to make a new me.com iCloud account/address. Really Confusing.
Which you can merge to the same account [edit: actually, no, you can just use in tandem].
But, really, how would that be different if the user ID was a random name? People could still have "numerous Apple IDs and content bought with all of them".
That's the issue though. It doesn't introduce anything useful in terms of replacing JSON (it can even make things worse), and for other uses better solutions already exist.
The fact that in theory if it was magically supported everywhere, it might be serviceable is neither her nor there. It's not useful information. It's not gonna happen because there's no reason to switch from JSON to this, and many reasons not to. Likewise, for other applications there are better solutions.
People started using JSON even though at that point it wasn't standard because it had real benefits over what they were currently using. There isn't any situation where using this would provide a real benefit except to satisfy personal whims, and it would have the drawbacks listed.
How about fixing the log-in system? It claims "bad login" for valid credentials, doesn't say what's bad about it, and doesn't provide any way to reset supposedly bad passwords.