Imo the insistence on 'no NAT' has killed IPv6, as it made talking to legacy IPv4 nodes very awkward. If it could interop well with v4, then the transition wouldn't be all or nothing.
And it turns out the simplicity of 'no NAT' still buys you nothing. It's very common for modern systems to run multiple network interfaces with connections having to be juggled between them. In that case, connection and session management falls to a higher level protocol, often in the application.