Existem três níveis nos quais você pode otimizar o tamanho do download transmitindo apenas um diff.
Nível do pacote Transmita somente pacotes atualizados. Isso já está feito. Se você olhar para os tamanhos de download dos pacotes, verá que a maioria deles é realmente pequena. Assim, isso protege a maior parte da largura de banda.
Arquivos dentro de um pacote Transmite apenas arquivos alterados dentro de um pacote. O gerenciamento de pacotes é mais do que apenas copiar arquivos para locais fixos. Existem arquivos de configuração que podem ter sido adaptados automaticamente ao seu sistema. Pode haver alterações manuais. Seria difícil descobrir a diferença sem fazer o upload dos arquivos instalados primeiro.
Diferenças entre os arquivos internos A maioria e principalmente os arquivos grandes são binários. É difícil imaginar um algoritmo de correção confiável para arquivos binários se o arquivo a ser corrigido tiver uma pequena alteração como, por exemplo, um registro de data e hora de construção diferente. Para arquivos de texto, por outro lado, os algoritmos antigos de diferenças e patches aplicados pelo git provavelmente funcionariam bem, mas provavelmente não valeria a pena.
Outro problema é que você não sabe qual versão antiga será atualizada. Os usuários podem ter pulado atualizações intermediárias. É claro que o gerenciador de pacotes poderia solicitar que o servidor enviasse um diff para uma determinada versão, mas isso sobrecarregaria o servidor para gerar diffs. Eu duvido que os mantenedores do servidor permitam isso.
Resumo : O que poderia ser feito com facilidade e confiabilidade já está feito. O resto fica a cargo dos gerenciadores de pacotes para fazer pequenos pacotes para manter as atualizações pequenas.