I tried it once and it used the -Os flag instead of the usual -O2 flag. From the GCC manpage :
-Os Optimize for size. -Os enables all -O2 optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size.
My guess, and it is only a guess, is that those further optimizations are redundancy suppressions and relocation hacks, which is why old (broken) compilers will choke. They won't be able to relocate some of the assembly routines.