Дерево - дерево наследования, оно действительно не показывает, как объекты используются вместе.
Местоположение, которое вы предлагаете, просто не работает с точки зрения наследования. Элементы могут иметь дочерние элементы и атрибуты, поэтому, если XAttribute был получен из XElement, это будет означать, что Атрибуты могут иметь дочерние элементы и их собственные атрибуты. То же самое происходит с XContainer, поэтому нет смысла размещать XAttribute рядом с XElement в дереве.
XNode - следующий шаг вверх. Может ли XAttribute соответствовать под XNode? На самом деле, нет. Когда вы смотрите на XML, в общем смысле, есть два основных структурных элемента: Узлы и Атрибуты. Ни один из них не является производным от другого, поэтому имеет смысл, что XAttribute и XNode находятся на разных ветвях дерева XObject.
Это просто исключает XObject, который является базовым типом объекта Xml2Linq, и все должно происходить из него, поэтому это лучшее (и действительно подходящее место) для типа XAttribute.