The ArborText Adept editor has always had a capability very much as you
describe. For arbitrary DTDs, you indicate (as an optional part of
your doctype setup) your "division class" elements in "order" and then
you can cut and paste, say a section containing topics and subtopics
between two chapters and have all the elements in the buffer (including
division headings) automatically "promote" themselves properly upon
paste. (Our automated doctype generation process analyzes the DTD and
will automatically set up your divisions in this manner for you.) You
can also do things like cut and paste list items into a place where
paragraphs (but not list items) are in context and have them
automatically pasted in as paragraphs (or, similarly, the other way
back into list items). I find this an extremely useful feature,
especially when cutting stuff out of, say, an old technical writeup and
pasting it into, say, an upcoming report where what used to be a
section in the writeup becomes a topic in the report or whatever. With
interfaces like this, the point of whether your DTD contains a single
recursively nestable element or a set of level-specific elements
becomes moot (or, at least, "mooter").