there are 2 issues why the internet is exploited.
Issue 1 is that while in theory you could combine networks dynamically, they are static mostly and routing follows static hierarchies. The message you send to your neighbor might hop through the central internet node of your country.
Issue 2 is that your connection and data is transparent. It's like if you had told your postman the message and the name of your friend that should receive it. Now postman to postman it's told until the postman of your friend tells it eventually to your friend.
In reality, your provider might just check the protocol you're using and if you've paid extra for it, route it a fast path or if that protocol causes a lot of network load, delay the transportation. Your government might parse it for keywords, protocols etc. Arriving at your neighbor's PC, it might be the trojan horse for something, it might be censored, alternated etc.
To secure something fundamental as your personal freedom, which you don't own anymore on the internet, you need to secure ownership of the content and transportation up to the recipient.
On high level that means those two issues need to be resolved.
1. Just you should know and own the route of your packets.
2. Just you should know the content and address of the recipient.
I agree, and I don't aim for rocket science here. But the Issue arises because there is no end-to-end encryption in the lowest level. Every protocol has to add some kind of encryption. ftp->ftps and sftp, http->https, smtp? pop3? and what about those millions of apps in the stores?
The problem is not only whether they add some encryption, but who has access to decryption? what algorithms are used? is it safe?
well, I guess my point is. why is there anything without encryption? I understand that it was an exhaustive task back then for 8bit cpus to run some 1024bit RSA. But nowadays it should be fundamental to your network. Every packet that leaves the software layers of your OS to the actually network devices should be already encrypted.
along that way, every node in the route to your target should just get the encrypted address of the next node. nothing more is needed to forward your packet. (not knowledge needed who send it, nor how many nodes are ahead of it.)
that's why I would suggest that instead of using IP addresses, you rather use the public encryption key as target. If the routing is made by the clients and not the nodes, then there should not be a problem with exploding routing tables, as all a Node needs to know is the private key of its own address to encrypt the address of the next node.
maybe my view is too simple and that's why I don't see a problem (yet).