Bei MS ist das XMLDOM halt nicht Multithread, es verwaltet auch nicht selber die Threads (sich selber intitialisieren, wenn wo benötigt und wieder beenden, wenn keine Referenz mehr, oder so)
Da muß man halt selber die Umgebung pro Thread initialisieren.
Wenn du ganz hart drauf bist und das nie wieder vergessen willst, dann kannst du unter Windows auch das Erstellen/Beenden von Threads hooken und dort "automatisch" CoInitialize und CoUnititialize aufrufen.
Braucht dann zwar bissl mehr
RAM und klein bissl Zeit für CoInitialize/CoUnititialize, auch da, wo es nicht nötig wäre, aber davon haben wir ja eh genug.