Я видел очень оптимизированный код, работающий очень медленно, и неоптимизированный код, выполняемый быстро, и это потому, что компиляторы знают, как компьютер хочет работать, а разработчики компиляторов в первую очередь фокусируются на простоте оптимизации кода.
Возможно, ваш 150-строчный алгоритм компилируется во что-то намного более быстрое во время выполнения, чем ваша 20-строчная версия. Ваш 20-строчный алгоритм может оказаться медленнее, потому что компилятор не знает, как его оптимизировать.
Я бы также предположил, что вы можете разместить версию if-else в блоке комментариев над версией алгоритма из 20 строк (или наоборот), чтобы сопровождающие могли понять, что пытается сделать ваша сложная версия. Наличие обоих в коде облегчает тестирование производительности обоих (и после того, как вы ввели их оба, нет смысла удалять другое). Это также позволит легко перейти на другие языки / платформы / компиляторы в будущем. Вы можете этого не ожидать, но если код работает, он, вероятно, будет жить десятилетиями и будет видеть множество различных компиляторов и платформ.