Why did they have to completely redesign the protocol for IPv6? All that we needed was a few more bits for the address fields. There's nothing wrong with NAT routers and the inherent security bonus everyone receives from having to know at least a little about what they're doing before opening a huge security hole into a home or office.
Instead with IPv6 we have wacky huge address fields, massive /64 allocations to small businesses as standard, a complete rethink about how IP 'should' be done, and funnily enough no-one wants to bother implementing it on their network. Who'd have thought it?