So for any document type you can know beforehand whether order matters in any element. When attributes occur, they can be reported in any order, but since order won't matter in this case, no problems occur. We fix canonicalization by only allowing canonical forms. These constraints exchange semantic complexity for syntactic complexity, but at least it becomes a non-recurring problem. XML namespaces depend on them, and we will have to support namespaces, although I might like to live with a subset of the namespace spec.
Attributes make XML more readable to humans.
SML needs to be what people commonly use. We aren't going to change people's habits or inclinations. But I do see now that allowing attribute may require us to put complexity somewhere. Inc. XML infrastructure. All rights reserved.