IPv6 is a case study in the second sytem effect [1]. Realizing you need to make breaking changes and it being rare that you get to do so you decide to make all the changes. The truth is IPv4 only had 2 real problems: 1. Lack of address space due to 32 bit addresses; and 2. Lack of a solution for roaming since your IP address is a core part of connection identity (between the source and destination address and port).…
Arguably lack of IP address block portability is not that big a deal [now that we're well used to it]. But IPv6 did not solve the CIDR route table size issues, and that's a big failure.
I have long thought that IP packets should have a source and destination ASNs as well as actual addresses. That would mean that we'd need more DNS (or similar) lookups, and a bootstrapping system for that. A scheme like this would greatly reduce router table sizes and would allow for IP address block portability.