switch активно оптимизируется компилятором, строятся таблицы переходов и т.п. А для этого компилятору надо знать все варианты заранее. Видимо считается, что если быстродействие не критично, то программист сам напишет цепочку if() {} else if() {} else {} или что-то подобное.