It depends on which GCC version one uses and which particular set or
version of the ARM instruction set one means. GCC 3.x support wasn't that
good for ARM, GCC 4.x (used already everywhere) is much better.
As to kernel being compiled with GCC... Kernel doesn't itself use all the
possible features from the ARM instructions set, it just supports them for
the user-space. Using them inside kernel would complicate things.