I basically agree with all of what you said. We made some pragmatic choices along the way to serve an experience which mostly works and serves an efficient experience for 95% of requests.
Not to defend the bad, but things are overall pretty okay. Specifically, the chat feature and other generally "live" features are pretty much entirely responsible for some of this JS dependence.
Anyway, you'd be happy to hear that now that we're open source, we're pruning some of the bloat that kind of just made its way in when we were pushing a bit too hard to cram in the features folks were demanding. Our approach has returned to a much more principled one.
Anyway, just wanted to address this from my perspective. I'm spiritually aligned, but we've got some work to do. Eventually I'd like to offer various configurations that would allow folks to turn off certain features in order to run differently in different scenarios.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.