One thing I will say about XML is that the rise of JSX shows that the basic idea of using an SGML-like language for documents is sound and actually popular with developers. I think the problem was that because nothing like JSON existed at the time, XML got pushed into a role as the universal structured data format, and it really was not suited to that. Attributes, for example, are great for documents, but they are a needless complication for a general data format. And entities, to get to the point of the article, are basically a compression technique (looked at from a certain level), so they really don’t belong in a structured data format.
Entities aren’t just about compression: they also provide references. Using entities to refer to a person or organisation makes it easier to handle name changes consistently across a set of documents.
Reminds me of a draft spec for Invisible XML: https://homepages.cwi.nl/~steven/ixml/ixml-specification.html