Eu imagino que seja por simplicidade; tanto para o usuário quanto para os desenvolvedores.
É mais fácil para os desenvolvedores criar algo que substitua todos os arquivos e não precisa se preocupar com qual versão anterior o usuário está executando. Se você fizer um patch, terá que criar instaladores separados para atualizar de cada versão, e isso é um incômodo.
Além disso, o usuário não precisa se certificar de que está baixando o pacote de atualização correto. Tudo o que ele precisa fazer é baixar o instalador, executá-lo e ficar feliz que tenha a versão mais recente.