Nah - the only pain would be in loading/saving. The idea would be that all this information would be in memory and updated live. So when you use node based APIs, it doesn't need to do any parsing. It would have a node object, and the body would be an attribute, and subnodes would be links to other nodes, etc. Only when saving/loading would it then need to convert (serialize) to a text representation.
This is how the Leo editor does it - it's in Python and it can handle a fairly large number of nodes before any slowdown is noticeable.