The only real down-side to having VM disks on separate datastore is the potential management headache.
If you have a system, including a naming system, that is faithfully executed then it should be no big deal. For some implementations we have created datastores just for OS disks (because they are low iops and grouping them plays into deduplication strategies) and different datastores for "data" disks. It allows us the flexibility of shaping the iops characteristics of each datastore/lun. But that's pretty detailed planning and management and all one company (not a hosted or multi-tenant environment).
I am curious what storage you are utilizing?