Cygwin vs Linux Virtual Machine for Development?
1: cygwin is good for quick hacks, and for being able to acces host-os resources(you can run IE for example in a bash script). For something tightly integrated and some "real" word, go to a vm. It will emulate everything and separate development from the real machine, and this may be a good thing in some cases... as a plus it simulates a real server:)
2: in virtualbox at least, you have shared folders, and you can share a local folder, and see it in the vm as a local folder(local or as a windows share..it actually depends). Then you can use that "entry point" to symlink stuff into the vm, and do the things you need with the real files being located in the real(host) machine
I have faced common issues before, and the best solution according to my experience is just 2 workstations :).
Apart from that having Linux running in a virtual environment is way better. First of all, you will have full Linux capabilities (except 3d acceleration, but you probably don't need that). You will have the capability of creating snapshots and revert back to them when things go wrong! You can start multiple environment using templates, which is very convenient.
The only downfall I can think of is performance issues of the host machine. If it's a normal workstation/PC, an IDE + one virtual machine + a 100+tabs browser just makes it slow.