Não é bem assim. O arquivo já está aberto pelo programa. Excluir o arquivo (e depois substituí-lo por outra versão) não afeta o programa em execução porque o arquivo original é mantido aberto (embora sem um nome no disco para abri-lo novamente) até que o programa termine com ele. Somente quando todas as alças para o arquivo estão fechadas, seus blocos de dados no disco são liberados. Até lá, o arquivo aberto pode ser lido e escrito como normalmente - a única mudança é que ninguém mais pode abri-lo desde que seu nome foi removido.
Enquanto partes do programa já podem ter sido lidas no RAM quando são deletadas, elas ainda podem ser descartadas e relidas mais tarde, ou novas partes do programa que não haviam sido executadas anteriormente ainda podem ser carregadas do arquivo excluído. arquivo.