Are .vmwarevm files better than .vhd files in this aspect?
The XP VM is a subsystem of Windows7 (or was it Vista?). If you run the XP VM within a Vista/7 "computer" that by itself is running in a VMWare/Parallels virtual machine, all activity will be contained to a single file that represents the (top) VM. Think of a VM in a VM - nothing is changed here, the actual writes and reads are performed on the physical disk by the physical computer you have on your desk and this computer runs a TRIM-enabled OS X. Everything virtualized is just a file on the disk and there is no technical possibility for a virtual machine (this being a host-OS independent rule) to override the way the actual physical disk is accessed. It needs to be addressed by the host OS. If the host OS supports TRIM, the data will be trimmed. The guest OS does not see a physical disk. What it does see, is a virtual disk that does not exist physically. This virtual disk is represented on the physical disk as a file. The host OS takes care of this disk and files on it and TRIMs it accordingly.
If, however, you intend to boot your computer straight to Windows Vista/7 (or whatever it may be, that has an XP Virtual Machine) you are in the same boat - because the whole idea of a "virtual machine" is for it to be
virtual. It does not access the hardware directly. The VMWare or Parallels or even the "XP VM" application serves as a layer between the OS that the computer was been booted into (the host operating system - one that resides physically on the hard drive) and the virtual appliances, be it also guest operating systems. This layer must obey all the rules of the host operating system - in this case, all disk activity will be making use of the SATA TRIM command when necessary. Exactly in the same way your iTunes copy, move, delete and modify data within mp3 files. You do not ask if iTunes is TRIM-enabled. The system is.
And no, if the host OS supports TRIM there is no way to tell whether some files are better or worse. The idea of the virtual computing (the "layer" above) makes them all equal. They all will make use of whatever the host OS offers, because the actual writes are performed by the host OS itself.