A foo.lib can be used interchangeably with a libfoo.a file. Except
for the well-documented and frequently repeated problems with C++
name mangling, and the even more repeated problems with mixing
the cygwin and msvcrt runtime libraries, there should be no problems
with using a .lib file on the gcc command line or a .a file on the
"cl" command line.
In fact, I just tried it. I created two MSVC object files, put them
in a .lib, and linked them with a program that I compiled using
gcc -mno-cygwin.
Then I put the same two files in a ".a" and linked them using "cl". You
will have to play around with the right libraries required to satisfy
things that mingw adds to an object file if you want to use msdev for
linking but this is not an insurmountable problem.
Getting this working with object files compiled without -mno-cygwin
would be tricky (and maybe even not possible) but it's certainly
possible to use msvc created .lib files with gcc and gcc/ar created .a
files with msvc.