Microchip puede hacer eso porque los header, linker y demás que pone con otra licencia (propietaria), no se consideran parte del compilador, entonces, aunque vienen en un sólo paquete (de cierta forma), son dos productos diferentes: el compilador y los componentes de "apoyo" para poder utilizar el compilador con sus microcontroladores. Microchip debe cumplir con la GPL en cuanto a que debe poner disponible las modificaciones que haga al código del compilador, y así lo hace, con eso cumple. Pero nada evita que Microchip te lo venda, el código GPL puede venderse, compilado o sin compilar, a lo único que obliga la licencia es a que los usuarios tengan acceso al código y que se les permita realizar modificaciones sin prohibiciones (denuncia, amenaza legal, etc.). Vamos, que yo puedo tomar el código fuente de cualquier aplicación GPL y venderlo(a) al precio que yo quiera, siempre y cuando también ofrezca una forma de que los usuarios tengan acceso al código.
Este modelo que está utilizando Microchip es similar a algunas otras aplicaciones como Synergy (
http://synergy-project.org/), que sus desarrolladores te la venden, pero está liberada bajo licencia GPL, por lo que tienes acceso al código, así que tú puedes tanto pagarla y descargar el instalador para tu sistema, como descargar el código y compilarla tu mismo, aunque si requiere un poco de trabajo pues los desarrolladores no te dan un paquete con todas las bibliotecas listo para compilar, sino que tú tienes que descargar e instalar lo que sea necesario. Vamos, que lo que pagas es por la comodidad de no tener que recompilar cada que haya una actualización (cobro normal), o por el soporte adicional (cobro premium). En el caso de Synergy la aplicación es barata y estoy de acuerdo en pagar por ella, pero Microchip me parece que exageró MUCHO en el precio de sus licencias, por ello creo que sacaron ahora su nuevo modelo de renta, que me parece mucho más adecuado y acorde.
La licencia LGPL casi siempre se utiliza para bibliotecas, y se creó para permitir que una biblioteca de código abierto pueda ser utilizada en aplicaciones propietarias. Para poder utilizar una biblioteca LGPL en tu proyecto, se debe poder distinguir entre un producto que "usa" una biblioteca y uno que "se deriva" de la biblioteca. Si el programa/producto hace uso de la biblioteca (p. ej. yo hice un software que utiliza la biblioteca SDL
http://www.libsdl.org), el programa puede ser propietario. Aún así, si realizas alguna modificación a la biblioteca, estás obligado a liberar el código de dicha modificación. También, generalmente se incluye que la biblioteca deba ser enlazada de manera dinámica, de forma que pueda ser más fácil distinguir que se está utilizando una biblioteca externa LGPL.
Puedes ver el uso de herramientas GPL también en otros paquetes, por ejemplo los de Xilinx, donde al instalarlo se te presentan todas las licencias del software que se va a instalar, y ahí puedes ver que varias son GPL.