I have built the OpenCV library(it is a big library, and use makefiles) under Mingw, If I change some source, only the source file modified will be compiled. So, it works OK in my system.
Maybe, the problem comes from your "Cygwin" or "Makefile script". But I'm not sure