Обратите внимание, что в Java учитывается регистр, но файловая система не обязательна. Если базовое имя файла - «abcd», а класс - «Abcd», будет ли это соответствовать правилу в файловой системе без учета регистра? Конечно, не при переносе на регистр.
Или предположим, что у вас есть класс с именем ABCD и класс Abcd (давайте не вдаваться в плохую идею: это может произойти), и программа портирована на нечувствительную к регистру файловую систему. Теперь вам нужно переименовывать не только файлы, но и классы, упс!
Или что если нет файла? Предположим, у вас есть компилятор Java, который может принимать входные данные при стандартном вводе. Так тогда класс должен быть назван "StandardInput"?
Если вы рационально исследуете, что имена файлов должны следовать за именами классов, вы обнаружите, что это плохая идея по нескольким причинам.