I do not have a better explanation for it.
No no your explanation is perfect nodes do not have a notes attribute. When somebody adds a note text in the attribute editor, maya creates that attribute on fly. So the notes ARE stores in .notes string attribute its only its created dynamically on fly when needed.
So if on needs a note on a node that doest allready have a notes attribute you must add it. But if it allready ha a note then just set it.
Notes is by the way not the only attribute thats tagged there on fly, a lot of maya attributes do this. In afct lots of rigging build on this idea.