IMO point 2 can be neglected. It's an edge case, if you ask me.

The first point is no big deal. Verbosity or not. It's always better to strive for 
a simple, easy to grasp solution. I believe (as a consumer of that API) that it should reflect the effective runtime model, no matter what. Including the defaults. Going through additional hoops & loops to figure out the effective runtime configuration is counter productive (curl,bash, etc) and will not be used.

Further more, consumer do not care if the attribute derives from a default value or not.
And why should they? 

The fact that it's written back to xml, is an implementation detail to me. 
But it should not mandate how the actually API works.

Ike

On Jul 29, 2011, at 2:31 AM, Brian Stansberry wrote:

1) The in-memory model no longer represents the user configuration 
values; it also stores defaults. This is an issue when marshalling back 
to xml; you either have to make the xml verbose by writing back all the 
defaults, or you don't write back defaults and lose the fact the user 
included the value in the original.

2) Possible versioning issues in a domain where different hosts run 
different versions; i.e. if the version on the domain controller host 
stores and pushes to servers a default value that a server running an 
earlier version doesn't understand.  This would really be a bug, since a 
change in a default value should spur an increment in the subsystem's 
schema and appropriate handling by the parser. But still, storing 
defaults increases the chances of this kind of bug cropping up.