The options in ADO (2.6) are return the data from the database, translate to xml using save method then using XSL transform it into the form you want i.e getting rid of ADO stuff. Other option is to return the XML from the database and do similar with the returned document. For the later there are the options of FOR XML method. The easiest XML out is using the EXPLICIT but is a mind bender to create the query.
in .net populate the datatables make your dataset and export the xml. or return the xml to auto populate the dataset as with above the FOR XML options come into play.
One other point is that the methods on the MSXML object model are clearly not microsoft standard (well it wasn't written by them). Also they are 101 ways of doing something in a DOM especially when it comes to Xpath. Given we are handling strings, the difference between the best way and the worst way can be huge in processing time.
This later is similar to database access, ask someone that doesn't know about indexes and SQL and they will write the worst query possible, and kill the server.
I suppose my point is that this is all new technology with lots of ways of doing things. There must be best practices. We have spent years developing the best practices for using ADO, we are going to have to do the same for XML.
p.s does rant mean the same thing in the US as in UK