Sempre que você abrir ou executar um arquivo no Windows, o Windows bloqueará o arquivo (isso é uma simplificação, mas geralmente é verdade.) Você pode ter encontrado esses erros irritantes em que não pode excluir um arquivo porque outro processo bloqueio exclusivo sobre ele. É por isso que sempre que o Windows precisa se atualizar, você precisa de uma reinicialização para que ele tenha efeito. O Windows colocará em fila as atividades de substituição e exclusão de arquivos para a próxima inicialização (quando nada tiver um bloqueio em nada).
Por outro lado, o Linux tem um mecanismo no qual não é o arquivo que está bloqueado, mas sim os dados subjacentes no disco. Isso pode parecer uma diferenciação trivial, mas significa que o registro do arquivo no índice do sistema de arquivos pode ser excluído sem perturbar qualquer programa que já tenha o arquivo aberto. Assim, você pode excluir um arquivo enquanto ele ainda está em execução ou em uso e continuará a existir no disco, desde que algum processo tenha um identificador aberto para ele, mesmo que sua entrada na tabela de arquivos tenha desaparecido. Isso permite que o Linux substitua completamente um programa enquanto ele ainda está em execução e, em seguida, simplesmente reinicie o programa ou apenas espere o processo sair naturalmente. Uma vez que a instância antiga é eliminada, os arquivos antigos não existirão mais e os novos arquivos terão residido em suas entradas na tabela de arquivos.
Portanto, desde que um determinado arquivo não seja especial de alguma forma (como, por exemplo, o arquivo de imagem do kernel ou arquivos que pertençam a sistemas de baixo nível similares), o atualizador pode normalmente atualizar-no-local assim. Tenho certeza de que há casos e situações especiais em que isso não seria uma boa ideia, mas na maioria dos casos não há problema.
Quanto ao motivo de o OS X fazer isso, a teoria "apenas no caso" parece plausível.