Buenas,
Como ya ha dicho eferion, como has hecho el casting previeamente, el compilador al validar solo ve que se asigna un char* a un char* y no se da cuenta de que lo que realmente se asigna es un literal.
Esto enmascara el warning, pero no elimina la peligrosidad de la asignacion. En mi caso, al ejecutar el programa, es el propio sistema operativo el que captura la senal y me muestra una ventana de error...
Yo de Java y otros lenguajes si que tengo muuucha experiencia, pero de C se mucho menos que tu, vangodp. Para mi el uso de C es solo un hobby, asi que tambien aprendo mucho de tus aportaciones
Un saludo