В идеальном мире когда программист встречает неуклюжий код, он его переписывает. Чтобы заметить его несовершенство, он должен быть умнее и опытнее того, кто его написал. Код приобретает хорошие качества, он становится универсальнее и сложнее, или наоборот, прямолинейнее.
Код, написанный хорошим программистом, обычно работает хорошо, и слабым программистам незачем его трогать. Они работают над другими вещами.
За долгое время сменяются десятки программистов, какие-то лучше, какие-то хуже. Результат: постепенно код становится _выше среднего уровня_.
Код, который выше уровня программиста, для него выглядит запутанным. С ним сложно работать, программисту хочется всё выкинуть и переписать нормально, так, как он привык. Когда такого кода накапливается достаточно, непонимающие программисты побеждают и начинается решительное выкидывание функций, слом обратной совместимости и переписывание с нуля.