Оптимизация софта штука важная и полезная. При этом для массового софта подход «время на оптимизаию стоит дороже чем новый процессор» неверен — когда пользователей сотни тысяч, стоимость их потраченного впустую на ожидания времени таки дороже. Но иногда оптимизация просто вредна.
Очень часто оптимизация делается ценой читабельности кода, удобства его поддержки, а также надежности.
И это категорически неправильно! Есть работа, которую должен делать компилятор. И всякие низкоуровневые оптимизации можно и нужно делать либо в отдельных библиотеках (с параллельной реализацией «читабельного» и «оптимизированного» варианта), либо в компиляторе.
Еще хуже, когда оптимизация делается за счет безопасности. Два самых ярких примера, которые принесли в IT много кошмарных проблем — треды и ASCIIZ строки. Причем последние — это была оптимизация для процессоров, которые уже по крайней мере пару десятилетий не используются. А большинство проблем в безопасности у UNIX-like систем появилось из-за них.
Самая важная оптимизация в настоящее время — оптимизация структур данных и архитектуры. Все остальное требует вдумчивого анализа последствий.