At some point, you've got to tell _someone_ *some* IP if you want to connect with them peer to peer. And at the end of the day, nearly all of our packets should be p2p.
Ideally you would just tell the _desired peer_ your IP, but that implies you know theirs, and if you did you wouldn't be in this place to begin with. So you've got to at least trust some kind of gateway/name resolver/discovery node.
One decent solution is for every peer on the network to defacto run a personal proxy in the cloud. The proxy IP is not sensitive, and your connection with it is encrypted and doesn't expose your personal IP. People discover "you" on a gateway by finding your proxy IP, instead of your home IP.