Я пытался вписать это в комментарий, но слишком много сказать ...
Я не понимаю, как изменение, о котором вы говорите, является запахом кода. Если требования для этой простой функции меняются, они меняются. Если вам нужно внести изменения только в одном месте, значит, вы проделали хорошую работу. Если вашему клиенту понадобятся оба способа сделать это (или больше), то вы можете рассмотреть какой-то шаблон стратегии, чтобы вам не приходилось переписывать окружающий код для выполнения какой-либо функции.
Если вы вносите десятки таких изменений в неделю, тогда это может стать грязным, и вам, вероятно, следует составить план того, как более эффективно справляться с очень занятой осью изменений. В противном случае дисциплина и рефакторинг помогут вам сохранить его в чистоте.
Относительно того, является ли n² проблемой, зависит. Насколько велика? Если вам приходится делать это часто (то есть десятки раз в час), а n - из 1000, то у вас может быть проблема. Иначе я бы не потел, если вы удовлетворяете или превышаете спрос, а загрузка вашего ЦП / диска находится вне опасной зоны.