I quite like Yggdrasil's [1] approach, and there are other alternatives. Of course, it doesn't fix everything, but with many project working on different aspects of networking, we might get back to an "internet" that's closer to a mesh between non-interoperable networks (GNU net, cjdns, private VPN-backed LANs, zigbee, etc).
Because, on your local network, you can run whatever you want (but it better be ipv6-aware software using DNS, it's easier to fool like NAT64 or yggdrasil do).