Sorry I haven't had time to look into it myself, but one of the things libtool will do is add flags in a system dependent way (and occasionally strip some out if you aren't careful and made a typo in an option or something). Again, I haven't had time to look, but if you feed configure --disable-silent-rules, this will produce verbose output during compile and linking. It will first show the lines that were passed to libtool and then show the line that it actually used. Doing a diff on those should help elucidate what's going on.
What are the errors?
libtool is what takes care of this. Again, you'll see the command it uses at link time with the --disable-silent-rules configure option.
libtool should be doing the "trick" you showed. So are you in the situation that trunk and branch are failing in different ways with hand-built GCC?