Crenth, вы на верном пути, я через это тоже проходил. Стремился писать так, чтобы экономить каждый байт памяти, каждую процессорную инструкцию.
Со временем пришло понимание, что главное - это не написать мегаоптимальный и мегакомпактный код, главное - сделать продукт, который будет продаваться и приносить деньги заказчику. В коммерции никому нет дела до отточенности вашего кода, красоты модели, использования паттернов итд. Просто потому, что до этого нет дела конечным пользователям. Они будут покупать продукт, который выполняет свою задачу и которым приятно пользоваться. Причем второе - важнее!
Если вы скажете заказчику, что проект можно сделать за столько-то времени, а можно сделать все *****кодом в 2 раза быстрее, скорее всего он выберет *****код. Просто потому, что за выигранное время запущенный продукт принесет больше денег, чем потребуется заплатить вам за последующие исправления багов и доработки. Sad but true.
Но если небольшой проект можно на*****кодить и забыть, то с долгими проектами, проектами, которые предполагают постоянную поддержку и развитие, все сложнее. Если программерам придется постоянно копаться в говне, они просто не выдержат и свалят из проекта туда, где нормальные условия и тогда продавать будет просто нечего. Поэтому заказчику приходится мириться с тем, что программисты тратят больше времени на написание более правильного кода, с которым им приятнее работать, и который предотвращает больше ошибок.
Вот как-то так.
Добавлено через 2 минуты
Вдогонку интересная история о жизненном пути одного программера:
http://habrahabr.ru/blogs/development/91665/