Primero, dado que no hay un intercambio de pila SQL, no estoy seguro de cuál es el mejor lugar para hacer esta pregunta (debatí entre aquí y programmers.stackexchange). Si este es el lugar equivocado, muévalo.
Un defecto obvio en SQL es que las entradas no están saneadas de forma predeterminada y que las entradas del usuario pueden ejecutarse. Al diseñar SQL, seguramente los programadores deben haberse dado cuenta de este hecho? ¿Por qué entonces no pusieron ninguna protección por defecto contra ella, como escapar por defecto, o incluso mejor, volver a trabajar por completo para que las entradas de los usuarios nunca puedan ejecutarse?
Otros idiomas, ya sean compilados o interpretados, (como Java, Python, C, etc.) no parecen sufrir una vulnerabilidad similar donde se pueda ejecutar la entrada del usuario. ¿Por qué entonces el SQL es especialmente especial en este caso?