There's org-element, if you want to parse/generate org-mode, but it's true that many packages just operate on the text.
I say this as there is another well known node based editor out there: Leo. Nonprogrammers manipulate their documents trivially with Python code in a way that's a huge pain in Org mode even for seasoned developers.