Summary says it all. Reason seems to be hardcoded CFLAGS in src_compile: src_compile() { make -f Makefile.boot CFLAGS="-O2 -g -Wall -D_GNU_SOURCE \ -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -I." }
Yep, it does this out of compability issues to make the bugger build at all. Trying to implement users own CFLAGS proved more or less a catastrophy in some cases where it didn't like how things were looking. Hard locking them on -O2 -g made it handle under gcc 3.x
As spider just said...this is purposely done.