The suggestion was, "use CYGWIN Emacs". (I tried it but stayed with Gnu.)
I just tried this once more, but in a very simple environment (no symbolic links of any kind).
When a break triggers in "test.c", Emacs opens a buffer, "test.c<2>" on mythical file
"c:/cygwin/c/...test.c". It appears that Emacs helpfully added the missing drive letter.
I suggest that if Emacs did not add the drive letter when the /cygdrive notation is present
(on a system with CYGWIN installed), then Gnu Emacs, CYGWIN and gdb would all play
together straight out of the box.
(Of course, I could just be doing something horribly wrong, since I cannot imagine that I
am the first to tread this path and, no, I can't really believe this doesn't work.)