The compiled binary result of an ANIC program can not run on Windows natively. Thus where on other systems my dependency list is simply the native binary, on Windows, Cygwin either needs to be packaged with the release or installed manually by the user.
It's a blurry question regarding where you say a VM/Compatibility shim means that you no longer running the application natively. The same can be asked of Java, Flash, and a lot of interrupted/bytecode languages. The distinction to me in this case is that the code is meant to be compiled to native code (which it isn't in this case), and Cygwin is not a common platform available on a Windows system.
[Edit:] The asker of parent question should not be down voted, it is a reasonable question, and as I've stated it's open to interruption.
Distributing even a simple unmodified GPL library with your code is a huge PITA. Your app may not become GPL'd, but you still need to distribute a copy of the GPL with all its attendant "paperwork" and 3 year ftp servers and original sources, yada yada.
Cygwin can see every Windows file trivially via /cygdrive. Programs compiled in cygwin are mostly native code that at the bottom rely on Windows DLLs. This is a pretty significant difference from an emulator or a virtual machine (someone mentioned Parallels below).