In my view the mess is because
XLink simply doesn't fit into the layering of the XML architecture. The whole
point of XML is that you can choose any names you like for your objects
and attributes, and give them any semantics that you like (typically
captured in schemas and stylesheets). So why should relationships be different
from objects and attributes, and require fixed names and fixed
semantics?
Hyperlinking is something that belongs in the
user interface layer, not in the stored
information. The stored information needs to hold relationship information in
a much more abstract form. The hyperlinks, like all other user interface
objects, should be generated by the stylesheet. It's because the hyperlinking
community failed to recognize this that the idea failed to catch on. The other
consequence of this is that there is a gaping hole in the XML story as to how
abstract relationships should be modelled.