Hi,
Ich kann dir keine definitive Antwort geben, nur mir das herleiten vom SQLServer:
Wird beim SQLServer shrink auf eine DB aufgerufen, wird der freie Speicherplatz in der DB freigegeben. Ähnlich stell ich mir das bei VMWare vor. Da es ja möglich ist, Platteplatz von vorn herein fest zu alokieren, ist es mit shrink sicherlich möglich, den Platz auf der virtuellen Platte wieder freizugeben, der im Image nicht in Benutzung ist, also keine Daten enthält.
Das "Zippen" kann ich mir weniger vorstellen, da das den Betrieb der VM erheblich behindern würde, da so im Betrieb der VM die Daten immer wieder ge- und entpackt werden müssten.