I ran into this recently.
One way to do it might be to place an ordered list of the sub-nodes, or actually their identifiers, in a system field that is simply rendered as a list below the node. I'm guessing something like this already happens. They could then be rendered according to different settings:
- bullet with or without a highlighted circle, as now;
- a simple list with no bullet or number, but with a faint underline wherever there would be a filled circle;
- an unordered list with bullets with an underline as above; and
- an ordered list replacing the bullets with numbers.
Hovering over the empty space, bullet, or number would render the bullet point as in #1, above.
A poem could be rendered as #2 above. When we click on the sub-node to view it as a page, a faint line over the text would indicate that it is part of something larger.
Oh, and the sub-nodes' order would be stored too, even when sorted alphabetically, for instance. This would let people put in blank lines between stanzas, for instance.
That is, the field would store these:
Note that these are all stored in the node, not the sub-nodes. That way, the option of how to render the sub-nodes would only be stored in one place, not in each individual node.