That's all true, but is there anything practical you can do with an attribute node, and el.attributes, that you can't do with setAttribute/getAttribute/getAttributeNames/hasAttribute?
You can't even move attribute nodes between elements. You can't event reorder attribute nodes within an element.