Жизнь боль :)
>Когда компилятор не выдавал предупреждений о том, что значение енума не рассмотрено в switch-е --- да, иначе добавление нового значения в енум приводило к труднообнаружимым багам (тогда в default надо бросать исключение, писать в stderr или вообще делать что-то видимое). Относительно недавно gcc стал выдавать предупреждение, теперь наоборот, default "успокаивает" компилятор и не даёт ему указать ещё во время компиляции на возможную ошибку. Я считаю, что писать default всегда теперь не нужно (естественно, при условии, что код собирается без warning-ов).