The benefit is real end to end connectivity without the need for co-operation of everyone along the chain (this is an extremely serious issue, often even one layer of NAT makes trying to get port forwarding a nightmare, imagine 2 or 3) . Its also much more scalable than both. In the long run supporting some kind of gargantuan NAT/SOCKS translation layer for millions of customers is going to be much more expensive than ipv6 support, because IP is fundamentally stateless and designed to scale massively, NAT and SOCKS are not. This becomes a serious concern at larger scales.