The hierarchies are deep and many of the properties are typed as base classes which need to be downcast to the actual type to get at the information you need. I found the best way to understand this was to examine objects at run time using the Visual Studio debugger.
Below is a sample program with a schema and instance document that demonstrates accessing XML schema information during validation.
NET framework 2.0 includes a change so subtle it might appear insignificant. Schema Info, provides access to the entire schema definition of the current node.
This offers a world of possibilities for making software more dynamic by acting on the schema; reflection for XML if you will.
Sure, we have Content Deployment and STSADM export etc., but the lowest level of granularity is a web, and if you don't want to overwrite the whole thing neither option can be used.