I've encountered this problem a few times too. Usually it works when I expand the macros manually, or change the order of the paths/libs. I was kind of hoping that this problem went away with later versions of GCC (I'm using v2.9x myself)..
what I use(d) is both gcc 2.x and 4.x so it's definitely not a problem with gcc (because when gcc receives just '-I' it can do nothing about it). I tend to believe it's 'make' which mess the things but question is if it really does (it's very possible I'm overlooking something and it works as it should). For me it's mystery how it's possible Vincent uses this feature in his cygwin builds for mintlib with no problem.