You rewrite because it has to be done, despite the fact that it is no doubt the inferior solution both in terms of technical complexity and economic benefits, as Joel articulated well many years ago (and many others even earlier as well).<p>The code goes into this state because no one appreciates piece size enhancement. And those enhancement has no "impact". Everyone is waiting for the point that everyone's suffering from the bitrotten code is beyond most people's tolerance. And everyone knows well that some really bad things happen during the process, and they'll wisely refrain from doing anything meaningful.<p>That's basically one fact of how software engineering is done in practice.<p>Poor humans.<p>And this phenomenon is well known even in ancient time in other areas of society. Like even in Qin dynasty cicra 300BC, a Chinese physician Bian Que once claimed that his brothers are better than him [1], because they prevent illness before they occur.<p>And of course, everyone only knows Bian Que.