Maybe IPv6 has corrected some of these archaic leftovers?
That would be a logical assumption, which would make it highly unlikely :). IPv6 changes nothing about TCP. Well OK, it changes how the pseudoheader checksum is calculated (part of TCP header). From an OSI-model point of view, they really had little choice about changing TCP, as this is at a different layer, and each layer is supposed to be independent of the others. I worked on our IPv6 implementation, and the pseudoheader was the only TCP code that we had to touch. They even pretty much left the 1500-byte MTU alone, mostly because of legacy devices.