IMO the reason for this limit is the current structure of virtual disk files. The data (blocks of 512 Bytes) in these files is addressed using a UINT32 (32 bit unsigned integer) variable.
UINT32 max. => FF FF FF FF => 4.294.967.295
max. file size => 4.294.967.295 * 512 Bytes = 2.199.023.255.040 => 2 TB minus 512 Bytes
see http://www.vmware.com/technical-resources/interfaces/vmdk.html
André