You're right, that it's not the best. It would be better to have an incremental thing. For me it's just the easiest thing to work with.
But, as stated in the blogpost, I'll check gphots-sync in near future.
The problem with that kind of approach is that I need to setup my own infrastructure of some kind to run that sync app on it. With Google Takeout I can just do that to external vendor.
It’s actually compressed. It uses https://github.com/nodeca/pako and then applies base64. Try entering hundreds of "a" and you’ll see that the base64 doesn’t really get much longer.
It's stored in your history stack. I spent 15 seconds pressing the back button slowly becoming more and more horrified as I watched my characters disappear one by one.
You can see how it works for yourself by opening your browser devtools, opening the JS console, and typing
window.location.hash = "test"
You should see a "#test" pop up at the end of your URL. Pressing back will not change the page, but will make that go away.