You also place an inordinate amount of trust on the jail system of the OS -- making sure that the various virtual machines can't see each other across the harddrive(s) they share.
They don't share any hard drives. In fact each virtual machine has their own install of an OS and they can't mount other volumes from the host machine.
And lastly, you'd be sharing SQL database access with everyone else on the virtual machine. That could open up vulnerabilities if permissions are not exactly right.
No. Each machine runs their own services. Each VM will have a web server, sql, etc or whatever else the operator wants.
I don't think you are correct. They only appear to be separate services. And the hard drives are typically jailed in such a way as to APPEAR to be multiple instances of the os. Appearance is NOT reality.