Нет, это не преждевременная оптимизация. Она лишь росток от истинного корня - оверинжениринга. Каждый начинающий программист попадает в ситуацию, когда для добавления новой функциональности приходится всё выбросить и переписать. Боль от расставания со старым кодом оставляет в его сердце шрам на всю жизнь. И тогда он начинает искать любой способ, чтобы эта ситуация больше не повторилась. На помощь приходят OOP, FP, MVC, TDD, SOLID и другие аббревиатуры длинной от 2 до 5 букв. Они сеют мысль, что если сделать все правильно, то код почти не понадобится менять. Можно только добавлять новый. OCP (принцип открытости/закрытости) даже так и постулирует: "фигач новый код, не трогай старый". Прагматично, ничего не скажешь. Наш юный разработчик выбирает наиболее приглянувшуюся методологию. Например, PUP (Pink Unicorn Principle). И начинает оттачивать навык её применения. Потом в его арсенал подключаются другие умные концепции. И каждая заставляет кодить больше и сложнее, обещая взамен ту неуловим