Books on line says "A parsed document is stored in the internal cache of SQL Server 2000. The MSXML parser uses one-eighth the total memory available for SQL Server. To avoid running out of memory, run sp_xml_removedocument to free up the memory.".
Although it makes reference to the XML Parser but it is not crystal clear whether this means there is a 1/8th penalty overall for using the XML parser or 1/8th per document.
I haven't had chance to test it in anger because the CMS we are developing on has a memory leak (more of a terminal gush) in its implementation of DOM so I've had to revert to itterating through a normal recordset building up the XML as a text string.
Which ever scenario is used the guideline I would suggest is to use the sp_xml_removedocument as soon as humanly possible.