Warum nimmst du kein IXmlDocument und vergisst Free() einfach?
Wenn du es wirklich so machen willst, dann solltest du node auf nil setzen, bevor du das Dokument freigibst.
Eine Interfacereferenz auf nil setzen ist das gleiche, als ob du die Methode verlässt: Der Referenzzähler wird um 1 reduziert.
Hättest du beide einfach als Interfaces müsstest du gar nix beachten.