This post, while trying to be helpful, is a fallacy.
Shares ONLY apply WHEN the host is LOW on resource.
Using your same example, the host (with more like 8Gig of RAM) has 4 VM's each with 2G assigned. Assuming the VM's are idle, their usage is based upon need. Even though each VM can have assigned 2G to the guest, the host may only allocate 700Meg to accomplish this, leaving almost 5G free on the host.
If for some reason 2 of the VM''s start ballooning the memory, and thus increasing the host load.
As the host becomes taxed for memory, then and ONLY then do the shares for resource allocation apply. The shares do NOT have any affect until the host has no more memory to allocate, and the VM's with the highest shares get the lien share (as allocated by the share level) and the rest of the VM's will have to get what's left over.
That's how shares work. when the host is in surplus ALL VM's get equal share of CPU and Memory, despite what their share level is.
I could have 1 VM at 1 share, and 1 at 20000, they will both get EQUAL share until the host can't spare more memory, the VM's with the highest share's get the memory based upon priority, which is the same as shares.
This applys to CPU and disk shares as well. Shares only apply during times of contention.