a mi juicio, debe ser por dos razones: porque el lenguaje admite valores literales y, por ende, para evitar confusion al interprete debido al primer punto. recuerda que uno de los procesos del interprete es analizar la sintaxis. y la sintaxis esta dividido por
tokens.
Cita:
Iniciado por http://www.osdata.com/topic/language/program.htm tokens: Tokens are the basic lexical building blocks of source code. Characters are combined into tokens according to the rules of the programming language. There are five classes of tokens: identifiers, reserved words, operators, separators, and constants.
al ser parte de la sintaxis, cada tipo de tokens tiene que seguir unas normas. si nombras una variable comenzando por numero, el interprete lo tratara de entenderlo como un valor literal pero luego encuentra que no hay sentido en la sintaxis, y por entede te rebota error.