¿Por qué no puedo static_cast entre char * y unsigned char *?

Al parecer, el compilador considera que son tipos no relacionados y por lo tantoreinterpret_cast es requerido. ¿Por qué es esta la regla?

Respuestas a la pregunta(3)

Su respuesta a la pregunta