Does this not sound like a rather complicated thing for the individual developers to do when 99% of Dart web apps will need to do this?
Sure.
But "99%" of developers just need serialisation, which is supported. You (and myself) want more than that.
Depends on your definition of "supported"? JSON uses maps (throwing away one of the big advantages of Dart) and the Serialisation package appears to rely on hard-coded rules or use mirrors (which are slow and apparently not a good thing to use in production dart2js code).