Imagine that we created a way for relays to live behind NAT and be hole-punched into (using Iroh or otherwise) but they were still separate from clients. Then imagine we forced every client to also be a relay, and conversely every relay to also be a client. Do we then end up with the circumstance you are envisioning or have I missed something?
Because in that scenario, while I like the 1st step, I don't see the point of the 2nd step. it seems more flexible to leave relays and clients separate.