Eu tive um problema semelhante com tar
archives. As diferenças foram causadas por entradas de atime e / ou ctime. Minha solução foi usar
tar -c --format=ustar ...
para que os timestamps não fizessem mais parte do arquivo. Além disso, o tar padrão IIRC (isto é, o GNU tar) cria uma string descrevendo o arquivo em si, e esta string contém um timestamp. Ou seja mesmo que o conteúdo do arquivo não mude em todas as alterações de resumo. Isso pode ser semelhante com o ZIP.
Para ZIP, parece que você pode usar a opção --no-extra
/ -X
para evitar que os registros de data e hora do arquivo sejam gravados no arquivo. Eu apenas testei isso. Sem essa opção, eu obtenho arquivos diferentes, mas com a opção eles são os mesmos.