They'd all see each other over the network because they can all have their own network IP and such, but I think you can set them up with a virtual NIC to talk to each other directly as well.
As for the hard disk question, I'd think that you're going to have to consider redundancy. I mean, if your hardware dies, you don't lose one computer. You lose 5. Hard disk failure is fairly common, so usually you'd run RAID 10 or at least RAID 1 on a VMWare server, depending on how hard you're going to push the system for throughput.
That said, even if you got individual drives you could run into contention at the controller level since your machines would be pulling from the same machine.
If you're pushing the systems to the point where you need to consider splitting drives-per-VM, you probably need to reconsider using virtualization, or you'd need to consider multiple machines and full-blown VMWare to implement machine-level balancing and monitoring (which isn't cheap).
We're running about 7 servers on a single RAID 5 array in 16 gig of memory and it's humming along with no problems, but we're not slamming the VM's. You can overload a VM server with just two servers if you're saturating disks or network or memory. It entirely depends on what you're using it for.
My recommendation would be to try the VM solution, and if it doesn't work you have at least one really good system to begin your development farm or if you find a particularly problematic system you can have a VMWare system for some servers and either another box for a second self-contained VMWare system or a separate box for a particular purpose (virtualize 4 servers, have one for the problematic system). You should still end up coming out ahead.
Without estimates on what you're doing with the systems or how hard you're going to be hitting them the traffic/throughput/etc., it's hard to tell you more advice than that.