En fait en regardant un peu les sources, on pige pourquoi. Sachant que le cas le plus courant, c'est le parsing + passage en bytecode en une passe. Alors le plus rapide pour ça est évidemment parser le truc token par token, sans faire gaffe au contexte. C'est pour ça qu'ils peuvent pas avoir deux fois le même symbole pour deux utilisations différentes. D'où le merdier pour trouver un séparateur pour les namespaces