There are two problem with IDREFS and XML:
1. Without DTDs, it may not be possible to know what attributes are IDs and 
   which are references.  
2. IDREFs provide no direct way to address elements in other documents.
Therefore,
   if you want to enable IDREFs, you have to provide some indirection
mechanism
   that can transform an IDREF to an address into other documents.  This is
what
   HyTime and the TEI do by providing various location address element
forms.  If you don't do
   this, then you require documents to have different element types for
elements
   that use IDREFs and elements that don't.  This has the effect of
necessarily binding 
   element types to the forms of address they use, which should not
normally be
   necessary (because addressing is distinct from the semantics of
reference and
   therefore shouldn't necessarily influence the element type).
Unless I've misunderstood the current spec, XML Link doesn't provide any
ID-based
indirection method, so that pretty much elimitates direct ID reference in the
general case.  [However, using the pointer syntax, you can address elements
with 
IDs, but only through the use of an XML Link URL.]
Indirect addressing certainly complicates the processing--it requires you
to build
recursive processes and may impose significant processing overhead. On the
other
hand, indirect addressing is very powerful and lets you do things that are 
difficult or impossible otherwise, especially in terms of managing links and
addresses automatically, largely because you can isolate initial references
from
the details of the addresses of the things referenced.
Cheers,
E.
-- <Address HyTime=bibloc> W. Eliot Kimber, Senior Consulting SGML Engineer Highland Consulting, a division of ISOGEN International Corp. 2200 N. Lamar St., Suite 230, Dallas, TX 95202. 214.953.0004 www.isogen.com </Address>