For another point of reference, I noticed that the Glassfish was attempting to move away from a reference based model, to more of a scoping one. This is described in a V3Specification doc available here.
It appears however, that this was not completely adopted, no idea why.
In this proposal they nest server definitions as part of a group or a cluster. I think this would actually make the file harder to read.
Another unique aspect of this specification is that they made groups heterogenous and clusters homogenous. This seems strange to me since I view clustering as more of a service.