DRY - это принцип. Как правило, его цель - показать вам лучшие практики. Но, поскольку это «просто» принцип, а не какой-то нерушимый закон, нужно знать, когда его применять, а когда предпочтительнее - нет.
Мой подход к принципу DRY заключается в том, что он не поскольку 2 функции реализованы точно так же, как они не заслуживают того, чтобы существовать, по тем же причинам, по которым вы можете иметь несколько констант с одинаковыми значениями (ERROR_SUCCESS = NO_ERROR = SW_HIDE = et c ...). Семантика и контексты имеют значение.
Если бы вы завтра изменили одну реализацию, нужно ли вам также менять другую? Если ответ отрицательный, я не верю, что вы действительно нарушаете принцип DRY, или, по крайней мере, я не верю, что вам следует применять принцип DRY в этом случае.
Но само собой разумеется, все это немного субъективно.