Hi John,
Cheers for the kind words - what you've hit on is somewhat a cross behind a bug, a design "feature", a somewhat begrudgingly changed JSON serializer, and a solution going forward all in one!
Up until the 3.0.1 core release which broke out the serializers/deserializers from the core project, I was trying to keep feature parity and round-trippyness for all changes on the JSON/XML sides of things - i.e. read in JSON, write out to XML, reading the XML, write out the JSON, and have it match.
Unfortunately as most people seem to be using the JSON variant, and it also being the only one really maintained/being evolved currently maintaining that round-trippyness was starting to hinder progress on the project - so things were ripped out to separate sub-projects which means the XML and JSON can evolve independently.
Part of the problem I found with embedding ( more collections than straight sub-objects ) was a lack of consistency in how -everyone- does it in XML, theres some standard idioms but they're not fool proof. And more often than that, I find that if you wanting to embed a collection, or a sub-object that probably wants to be an _embedded resource ( not always tho ).
This shouldn't be too hard to fix tho, I suspect its just a flag/setting on the XML parser. I'll take a look as soon as I get some free time over the next few days. Or, feel free to submit a pull request.
Mark