"Se eles fizeram seu trabalho extremamente bem desde o início, uma grande parte, caso contrário, uma pequena parte".
Idiomas estritos exibem essa característica. Muito pouco teve que mudar nas línguas de Nicklaus Wirth, porque elas foram planejadas com precisão. (Na verdade, isso mudou recentemente para o Delphi e mudará mais com a próxima versão de implantação universal.)
Há também um outro lado disso, é claro. Decidir que o código original é bom o suficiente, como no caso do Microsoft Windows, ou aplicativos adoráveis como ACDSee, editores de texto ou o conhecido "espírito do Linux" aplicativos de linha de comando.
Embora esses aplicativos possam parecer desajeitados para quem talvez não os amasse, eles exibem uma característica bem planejada e um conjunto de recursos bem definido; mesmo que não tenham sinos e assobios, isso pode ser preferido; eles fazem o que está na lata, a compatibilidade com versões anteriores é ótima e provavelmente continuará funcionando bem no futuro.
O Photoshop teria 90% do mesmo código desde o 5.0, se você seguir o conjunto de recursos. ; P Faz? Não por que? Vendendo atualizações. Você não pode realmente fazer mais com isso hoje.
O conjunto de recursos de um gerenciador de arquivos, até o ponto em que ele deseja fazer FTP, web e nuvem, é basicamente o mesmo para qualquer plataforma por decênios. A única razão pela qual esse aplicativo ainda não está na versão 1.0 é devido a um mau planejamento, capricho, uma necessidade de atualização - e pelo menos em pequena medida o mundo está mudando em torno do aplicativo.
A resposta é que algumas gemas permanecem em 1.0 ou 1.0.x porque o desenvolvedor optou pelo conjunto de recursos, concluiu um programa sem erros e não lucra com a adição contínua de itens e a correção de bugs nos itens adicionados, ou mudou para desenvolver mais gemas.
É improvável que todo o resto permaneça próximo do código na versão 1.0. E por que você não deve reescrever o aplicativo se tem uma ótima idéia? Você deveria, é divertido codificar! :) Exceto que não foi o que ocorreu em muitos produtos de software modernos. A mudança por causa da mudança (vendas) e não motivada pelo conjunto de recursos, e em menor grau pela atualização para obedecer às plataformas em mudança, está na ordem do dia.
E nessa sopa de partes de software em constante atualização, poucas bases de código escapam de revisões. Alguns ainda mantêm o sonho de fundar e modularizar (e não lançar prematuramente), mas a grande maioria está presa no ciclo de lançamento-correção-atualização.