Why now? Well, I'm reorganizing some course content. When I received this content several years ago it was a hideous set of pdfs and docs. Spent hours converting to html in a book resource. The book was the only reasonable way to break down the content to sections. (used to be a huge fan of the book).
In the last reorganization a few months ago I pushed into the booked content links to the podcasted lectures which until then were a long list of resources on the course page (1.9 and Topics format with its notorious SoD). But the book has only two level hierarchy and it cannot hold resources/activities directly and adding easily breakable links cannot be ther right way to go about that.
I recently suggested somewhere in these forums that the course is a book. An alienated book, to be sure, for by standard formats the course doesn't know its nature. One section per page (per the proposed changes) is a huge leap towards the course discovering its nature. Book-wise, a section is like a page, but unlike the book resource the page can now hold activities and be an interactive page. Printing the course content like printing the book is not too far from implementation.
So now we just need to make it nested so as to allow a more complex structure. The good news is that with one section per page, nesting is just a matter of navigation.
The following illustration is of nested sections. I included in the illustration two navigation methods just to show what's possible but of course there is no need for both on one page.
One navigation method is a navbar based on the custom menu navigation. May not be suitable for nested sections, but it's there to be used and could be easily turned to tabs menu if preferable. The other, more interesting, navigation method is a specialization of the navigation block.
The section names in the illustration are the actual section names, so they could be anything you put there.
No core changes where required to all but the navigation block. The navigation block is the core block slightly tweaked, and by a setting can show either the standard global navigation or the specialized navigation as in the illustration. There are still some tight bindings of core components to resolve (e.g. cache purging code fails when the block is set to show the sections).
Generating the hierarchy in the format level is done by simple dd js in a designated view of the page (no need for the moving-sections ajax). The icons in the illustration below are just temporary indicators for drop areas - before, after, child.