First of all consider that GCC original meaning has changed from 'Gnu C Compiler' to 'Gnu Compilers Collection'.
GCC is truly a collection of different compilers, when you download the actual version you get a sw able to compile C (gcc), C++ (g++), Objective-C, Objective-C++, Fortran (gfortran), Java (gcj), Ada (GNAT), and Go (gccgo) (from release 4.6).
Consider also that the package includes even the target-specific backend code generators and the libraries for specifc machine or other systems different from the development system.
In fact GCC is a 'cross-compiling system', able to produce from a development station code that will run on almost all processors and OS's.
Than there is the linker also able to link for all code formats and systems.
A customized version, like the Arduino compiler could be, would include one language compiler (tipically C), one code backend generator and a simplified linker.
For a short description see
this.