That explains a lot. You see that limitation now within the context of NIEM and other largely relational standards, where you have id and idref artifacts. Because idref is only defined relative to its enclosing document, this means that it's remarkably difficult to create a reference to remote entities, meaning that any NIEM document effectively has to contain the entire serialization of all of its objects. In some cases this makes sense, but in a fairly significant number its a truly bizarre constraint (for instance, in those situations where you are adding a new member to a family in an insurance form, you actually have to send EVERYONE covered in that form.

An omission in XML 1.0 due to time constraints and the "requirement"
that no new syntax was to be introduced that the WebSGML TC would not
sign off on.

Declaring ID attributes in an internal subset was quite obviously a
non-starter. We should have bit the bullet then and invented some new
syntax. (I actually thought of several back then, but held my peace.)