Hi KiCHiK, thank you for stopping by,
NSIS (and probably InnoSetup too) uses a data block optimizer. This optimizer makes sure the same file won't be compressed twice into the data block. Instead, it searches for that file in the data that have already been added and if found, just points to it instead of adding it again.
I'm not sure about InnoSetup, see below...
A newer and higher scripting language is planned for NSIS 3
I'm REALLY glad to hear that

I did a little experiment and tried to compress the WME package using various tools (of course, it's not completely fair to compare installers and specialized compression utilities, but still...).
The package consists mainly of executables and BMP images (and a 3MB compressed CHM help file).
I used the solid compression mode in both WinRAR (3.20) and 7-zip (2.30beta32)
| Uncompressed | 38.195.864 bytes |
| InnoSetup | 14.208.458 bytes |
| NSIS zlib | 10.935.232 bytes |
| NSIS bzip2 | 10.163.711 bytes |
| WinRAR | 8.230.820 bytes |
| 7zip | 7.251.109 bytes |
I was surprised there's very little difference between the two NSIS compression modes.