Bueno segun lo que he entendido me dices que C18 y C30 es como especie de un assembler en C, se puede trabajar con mas precision pero es mas dificil de aprender, mientras que CCS es como si trabajar en Picbasic por ejemplo, tiene comandos que no son tan exactos. Esa es la idea que creo tratas de expresar?
Es un poco más difícil pero no se como has imaginado que es una especie de assembler en C jeje. El C18 y el C30 son ambos ANSI C y si usas una configuración estándar y un código normal no tendrás problemas.
La ventaja es que es muy configurable y dispones del código fuente. No tienes cosas como el CCS en que te permite configurar los pines automáticamente como entrada o salida en función de lo que quieres hacer en el código. Hay que leer un poco más para sacar un programa andando pero no deja de ser un ANSI C con todas las ventajas que esto conlleva (sobre todo si estas habituado a programar en C para pcs).
Entre las ventajas están la de que puedes configurar el código para llamar a funciones hechas en assembly por tu mismo y de esa forma podrías reutilizar códigos específicos que hayas hecho. Y no hablo de "inline assembly" que es escribir un par de líneas de código en assembly en medio de un código C, no, acá puedes escribir funciones en Assembly puro y luego poderlas exportar para ser llamadas por el C18 (respetando lo que dice el manual por supuesto).
También puedes hacer que ciertas funciones ocupen una región fija y determinada de tu código y luego eso lo pudes cambiar solo tocando el linker file y no el código.
Por eso digo que es mucho más configurable. Tal vez recién estes empezando y te este mareando con tanta información pero a mi hasta ahora no me han defraudado estos compiladores (sobre todo el C18 que lo he usado bastante mas, el C30 solo he hecho pequeñas cosas).