Apart from flexibility and other engineering/managerial advantages, does virtualization offer any cost advantages? If this question is behind your mind, then this article on memory oversubscription answers that question.
The table showing how many VMs can be accomodated on a hypervisor (with and without overcommitment) shows how much is the cost per VM incurred. Even if we do not consider the overcommitment arguments, the cost per VM vs the cost per hardware host says it all!!
And talking about overcommitment, memory overcommitment is achieved by finding duplicate read-only pages in memory. Storage overcommitment is achieved by using thin disks (allocate-as-you-grow store), volume snapshots, deduplication etc.
Oversubscribing different resources have different mechanisms. CPU and network resources are time shared, while memory and storage are space shared (in a reasonable sense). How to overcommit CPU and network resources? What are the ideas for it?