XmlNodeReader — есть XmlReader, реализовать аналогичный, который обходит ту или иную реализацию дерева вообще не проблема.
Если смотреть на XmlDocument vs XDocument и прочие, то XmlDocument безусловно много ближе по своей сути, т.к. он реализует W3C DOM Level 2 Core. Например XmlAttribute есть XmlNode, в то время как XAttribute — нет. За одно это этого в принципе достаточно, что бы к чертям выкинуть XDocument.
Впрочем, лично я пока ни к одному из них не склонился. Работы хватает пока без этого.