Документация по Java говорит
Компилятор Java генерирует в целом более эффективный байт-код из операторов switch, которые используют объекты String, чем из прикованных операторов if-then-else.
AFAIK даже String в коммутаторе использует .equals() внутренне чувствительным к регистру образом. Итак, какова эффективность в этом контексте. Быстрее компиляции? Меньше байткодов? более высокая производительность?