Content organization for complex website
Taxonomy is the way designed just for this. You can override taxonomy term pages with Views, and in view settings you can easily add your own content. Or use any other approach. Nodereference feels awkward to me, but would work.

If you want to go taxonomy way, just do what feels natural for your kind of data. Make things as simple as possible, and not simpler! That said, if one tree is a subtree of another, yes, keep it as one hierarchical vocabulary. It makes sense and will allow you to filter more effectively in the future.