We ran across a similar crossroad in Leo, (which you can think of as a programming editor that lets you take a guillotine paper trimmer to your source file(s) to form small, [named or anonymous], hierarchically-compose-able, code sections). To put it in Dendron terms, each file is a vault, each section, (==note), has its begin/end indicated by leo-specific "markup" that is "hidden" from the interpreter/compiler/VM by just commenting them out with whatever comment delimiting character for the language being used. Makes for a lot of distracting comments when you look at the file with a regular editor. They came up with a scheme that used two directories, one with all the files cleaned of the leo markup, one with. So a save from Leo wrote each file twice, and logic had to be added to detect edits made outside of Leo that had to take those edits and try to reconcile to existing sectioning.
This stuff is still in Leo but little utilized as "auto-sectioning" routines where made for each language that are "good enough" to get you started, and can be slipped when you want finer, more deliberate sectioning.