You know, I was thinking exactly what you said in your first idea yesterday, I was thinking that maybe the gossip model could benefit from being run by a relay, for example we have relay multiplexers like bostr that just proxy between you and the relays you connect to. What if these multiplexers dynamically connected to different relays based on the kin:10002 (nip-65) of the user's contacts using them? The gossip model would work relay-side rather than client-side, so it would be safer for users not to connect directly to unknown relays and expose their IP, and it would also be quite lightweight and bandwidth-saving for users. Does this make sense?
For your second idea, if the relays have an npub (currently they can have one defined in nip-11), why not just update the kind-0 and expose the current ip or address there instead of publishing a new kind?
As for your third option, we currently have something for "replacing" dns with onchain records called nomen, I haven't looked at it much but I know it has this goal. But in your idea we don't need to rely on a central authority, how could we solve that?