But assuming you're trying to maintain the tree structure you still have many of the same issues. Each node will need to entail the context of its parent, which means that you'll need to know things like transitive closures in order to know if a parent node affects a child (e.g. deletion) or if a child affects a parent (e.g. re-render tree). Or if you move a node do you have to re-create pointers below it? And tracking history could get complicated because it might span both the content of the node and the tree structure metadata (e.g. can you undo a change where the text was bold and a block was moved around). Where do you put transactions?
I'm not saying this is the same as XML, just that you can't magically escape all of the downsides. It's a fun problem to solve!
A bag of XML bytes doesn't give you that. It takes, at best, a SAX parser to do an O(n) scan through the whole document to find stuff. Most DOM implementations give you O(1) indexing by ID, but they require you to parse it first, and that's going to take O(n).
While creating and editing a database, it is SOP to create/maintain and save data structures that provide fast access later.
Is there some reason why you couldn't do the same for XML?
A database like SQLite allows you to perform structured queries at faster-than-O(n) speed straight off the disk.
A database isn't a set of flat-file CSVs even though that's all that is actually needed to do everything that people do with databases (albeit one operation at a time). (The data may be normalized but the datastructures aren't necessarily.) Instead, a database is data together with some data structures (and relevant code) that are maintained to speed up operations on said data.
Why can't one persist auxillary datastructures for XML, including (but not limited to) the DOM?
Try to open a Word document with a zip program, all you will see is a lot of folders with XML and blob images.
Latex and Word is XML. Notion is database.
The benefit of database: History, scale better, multiple users, merge text as diff is simpler +++