Вот тут в статье объясняется когда dry это premature optimisation. А ещё дядюшка Боб говорил что хуесосов которые лезут все рефачить под драй и ломают имплицитную логику (как раз потому что ошиблись в своей генерализации) определяют в петушиный угол
The first time you do something, you just do it. The second time you do something similar, you wince at the duplication, but you do the duplicate thing anyway. The third time you do something similar, you refactor.