Wow! GCC bloats executables on purpose!
http://www.trilithium.com/johan/2004/12/gcc-ident-strings/GCC behaviour to automatically generate an .ident directive into the assembly output:
.ident "GCC: (GNU) 4.0.0 20041214 (experimental)"
That turns into a .comment section in the compiled object file, and when the object files are linked into a binary all of the ident strings will be included. Some object files will almost invariably come from libraries, so normally you'll see at least a couple of different GCC versions mentioned when you examine your executables.
There does not seem to be any reason for the .ident strings other than backwards compatibility (with SVR4, according to some sources). You can inhibit the automatic generation of .ident directives using the GCC compiler option -fno-ident, but unless you have also rebuilt all libraries with this option you'll still get strings from e.g. glibc when linking.