I also just went through this too.
If you compress your files into a Tar Ball, 7z's LZMA compression may or may not recognise the duplicates if they are separated too far in the Tar Ball (it's a function of Dictionary Size and a few other things).
7z has a WIM format which collects duplicates, then you can use normal LZMA compression for there. Windows Command Line Example:
7z a -twim "Example.wim" *
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on -mhc=on "Example.7z" "Example.wim"
It works well, give it a go.