It's interesting this is at top of mind today, as I was just thinking about the npub/relay discovery problem and its tendency to centralization/federation. This seems like a solved problem, but it hasn't yet been integrated into the nostr model, simply out of maintaining simplicity. What I mean by the discovery problem is that a npub's present preferred relays is not trivial to discover, while at this time it depends on concentrator services like nostr.band. Bitcoin already has the notion of a mempool and it uses a DHT to share a common set of data. TOR also has integrated a pubkey discovery mechanism to find .onion rendezvous nodes. To find the location of a person's preferred relay(s) and/or simply a list of relays to find a npub's most recent profile data in a decentralized way, it seems to me one of these techniques is appropriate. It is also imminently compatible with the gossip/outbox client model. This way, nobody really needs to know who is at what relay to find their most recent posts and latest profile update. Then it becomes feasible for someone to have only a self-homed relay yet reach the full audience regardless of which relay their friends and followers are using.