A compressão depende muito da repetição do texto que está sendo compactado. Se os seus arquivos são de texto simples e todos muito semelhantes, então você terá uma ótima compactação, se eles forem diferentes, a compactação começará a sofrer. E se eles já estiverem compactados (ou seja, JPG, MP3, etc), a compactação será ainda menor.
Como você sugeriu com o algoritmo "knapsack", com tempo suficiente e recursos de CPU, deve ser possível tentar todas as combinações de arquivos em um único arquivo tar compactado. Infelizmente isso pode demorar muito tempo.
Supondo que seus arquivos são semelhantes (ou seja, todos são na maior parte texto ou todos são arquivos semelhantes), você pode obter uma estimativa aproximada compactando cada arquivo individualmente e, em seguida, adicionando os tamanhos para uma estimativa em uma compactação total arquivo tar.
A única queda é a estimativa falhará e produzirá um arquivo tar.bz2 final menor se os arquivos forem semelhantes e o algoritmo de compressão puder usar as semelhanças com sua vantagem.