rimu@piefed.social for what it's worth, we had this discussion a decade ago too.
We ended up being very simplistic and not tying anything to anything else.
So posts are not tied to topics (theoretically you could have a post in multiple topics... we don't do that, but you can)
And topics aren't tied to categories (same deal, and we also don't have topics in multiple categories... yet!!, cross-posting will change that.
So when you have a direct url to a post it's just /post/. A friendly URL uses a post index, but we can do that because we order posts linearly. Piefed doesn't have that advantage unfortunately.