I agree and I like this best because it keeps all the smarts in the clients and keeps the relays more agnostic.
Discussion
So I think being able to browse "relay global" is a nice feature, and being able to direct posts to specific relays is a nice hack, but even while offering those features I don't think they are how to handle different topics. I'll then design the UX to handle topics the other two ways, and leave those other things as manual override features.
Our current approach is your #3 option. Will there be some published taxonomy of topics? Do you plan to just use #tags?
I don't know, but I wouldn't want people limited by the friction of adding a dynamic new topic to an official taxonomy. I suppose #tags makes sense. There may be NIPs with ideas on this. I'd prefer to follow someone else's lead. I like the general concept but I'm not really interested in the details of how, I just want to do it.