I suggest that we impose that in an atom.Hierarchy - if any of the hierarchy has coordinates, all the leaves do (they can be at any level of the hierarchy though) - all residues in each molecule must be either a) explicitly represented as a Residue, b) part of a Domain which is a leaf (which would be expanded to allow non-contiguous sets of residues--or we could split off a new type of decorator for this) - any member of the hierarchy other than an Atom which has coordinates also has a radius. The interpretation is that this radius bounds where members of the (possibly elided) subtree can be.
These would ensure several useful properties: 1) it be clear what the highest resolution representation of any hierarchy is 2) one be able to find out where in the hierarchy any residue is located 3) code does not need to look at the most detailed representation to get a rough picture of the structure, it only has to search down the tree (I'm from CS) to find a representation with small enough balls.
Comments?