Вообще, отношение к ЦД такое же, какое долгое время была у русскоязычных программёров к SWITCH-методу Шалыто. Сколько Абрамыча по форумам поливали, что "ничего там нет, это нахрен не нужно, это банально, это тупо, мы и так код пишем прекрасно без всяких автоматов" и проч.
Хотя совершенно очевидно, что это метод, который позволяет во многих ситуациях регуляризовать решение задачи. Как можно запрограммировать состояние объекта и его изменение через раздельные переменные (булевы признаки и проч.) - и всегда будут и случаи, и сторонники, когда это будет, вроде, нагляднее. С другой стороны, проводились сравнения для сложных задач, что программист, нахреначивший кучу логических признаков и их изменения в разных местах, допускал много ошибок и долго отлаживался, а программист, вводящий одну переменную состояния и анализировавший регулярным образом все случаи, успешно решал задачу.
Так и ЦД позволяет по-другому подойти к построению алгоритма, вытащив на один уровень то, что расслоено обычно по нескольким. Иметь в арсенале такую штуку очень полезно.