What if we source control straight up AST instead of code? Each tool can decide how to render it...

I bet if Github supports such thing it will become standard

Well, you can already commit an AST if you really want to: just serialise the ESTree[0] to JSON and commit that.

But committing unreadable JSON files to version control rather defeats most of the features of version control.

[0] https://github.com/estree/estree