I spoke with Balaji (our marshalling guru) about changing the element-centric (upper) version to the attribute-centric (lower) version, and it turned out to be a single-line of code change. So my natural question was "why were we using the element-centric version which is much trickier for a programming language to parse?" And the answer was that several people considered the element-centric version easier to read, which I must admit it is - especially once the objects start having many many attributes and as you start having long lists of objects.
This is what puzzled me. Structurally, the element-based system is much more complex, but most people considered it much easier to read. So why is it easier for humans to "parse" one version, and easier for a programming language to parse the other. Both are textual in nature, so it's not like the apples-to-oranges question "why is it easier for computers to understand binary than text while binary is inscrutable to humans?". No, this one is more subtle. The only thing I can think of is that the human brain is sophisticated enough that rather than being put off by the extra structure, it takes advantage of it to more easily chunk the information into digestible nuggets. I.e. the element-based form changes the "person" definitions into something resembling a paragraph rather than just a list of run-on sentences.