It makes them extremely friendly to non-technical users, which I think is the majority of their userbase.
However, it makes it impossible for them to change technical decisions made in the past.
E.g:
<!-- wp:latest-posts {"postsToShow":4,"displayPostDate":true} /-->
<div class="posts"></div>
I've lost any faith I had in their core development teams competence. I would understand if development choices made 20 years ago weren't all that great by todays standards, and never breaking backwards compatibility would be the reason it still is bad today, but their new themes can be used independently from their old themes as an entirely different implementation, so they had a chance to finally do what is industry standard, and they chose to again make it horrible to write theme markup code that is prone to errors, has no editor support (what editor supports JSON in HTML comments?) and enforces more spaghetti to be made.[1]: https://developer.wordpress.org/block-editor/getting-started...
They're annotations that indicate where a 'block' of content starts and ends.
The JSON data stores some values set by users for a block that can't easily be parsed from the HTML content.
The content is stored as HTML as most content a user creates is static HTML, so when displaying content much of the HTML is displayed verbatim (but without the HTML comments), and then there's only a little bit of progressive enhancement for dynamic content.
I think you're also conflating some terms, like 'themes' and 'blocks', these are two different things and launched years apart.
I think single pixel spacers and such things are of a different quality than the design (code) flaws brought up about WP though. Their impact is different. One merely influnces the layout of things while the other for example influence how whole themes are structured and how many pitfalls WP developers set up for themselves by writing unmaintainable code.