Your right, I don't develop with cygwin. I just use it as a user. Anything I install, I install from it's repositories, and so far, it's always worked fine. I have compiled one or two things with it, and that's all just worked like it was a real Unix. This doesn't negate what you are saying, but I'm using it as an isolated environment and not trying to redistribute anything. If I did, I would try to redistrubute through the package management system, so may not hit the issues you have. But perhaps the repositories aren't controled like real Unix ones and I've just been lucky, I've not looked.
I've not found speed an issue for my uses.
I use the Unix like environment because I prefer it (and it has history longer than that session), but the standard console (Window's running cygwin) is terrible. MinTTY is amazing when compared with the standard console. So am I going to use PuTTY to connect to a real Unix environment? No. I'm going to use normal ssh like I was on a Unix environment. I did use PuTTY and normal Windows userland for quite a while, but I found cygwin + MinTTY works best for me. The piping stuff is an example where I can forget I'm on Windows and just do as I would normally. Don't get me wrong, I use PuTTY when on other people's machines, or don't have admin, but if it's a Windows machine that's for me, I'm going to setup and use MinTTY + cygwin because it gives me more than PuTTY.
I just wish it's package management was more like APT. I miss apt-get when on cygwin.