FreeBSD 10 usará o compilador Clang licenciado pelo BSD em vez do GCC para sistemas Intel x86 de 32 e 64 bits. A única coisa que impede uma mudança geral em todas as plataformas de CPU que o FreeBSD libera é o tempo e o interesse do desenvolvedor.
Quanto ao FreeBSD 9 - que estava prestes a ser lançado quando essa questão foi lançada pela primeira vez posou - havia conversa sobre tornar o Clang o compilador padrão, mas havia problemas suficientes com ele que decidiram enviar o Clang ao lado GCC e deixar o GCC como padrão para esta versão.
Quanto ao motivo pelo qual o FreeBSD não tentou migrar para um compilador não-GPL anos antes, ou talvez até mesmo criar o seu próprio, o motivo é simples: é difícil.
Qualquer estudante de graduação na área de computação pode escrever um compilador - pode até ser uma exigência do curso - mas escrever um compilador bom é difícil. Escrever um bom compilador é mais difícil ainda quando precisa ser para um idioma como C ou C ++. A tarefa se torna ainda mais difícil quando você toma a decisão razoável de que o novo compilador precisa, pelo menos, abordar o desempenho e a capacidade do GCC, que tem algumas décadas de desenvolvimento por trás dele.
Por causa disso, o GCC 4.2 ainda é o compilador padrão no FreeBSD 9.
GCC 3.4, 4.4, 4.6, 4.7 e 4.8 estão na árvore do FreeBSD 9 Ports, a propósito, e alguma versão do GCC provavelmente permanecerá em Ports por muitos anos. Há muitos pacotes de software por aí - muitos dos quais estão no FreeBSD Ports - que só são compilados com o GCC.