When I was searching on Google I found a useful class which let us change the icon of any .exe file using the following line of code :
.exe
WindowsF
I just experienced the same issue with a 7zip Self-Extractor exe.
Updating the icon of the 7zS.sfx (instead of the exe) before creating the Self-Extractor exe does the trick and the exe is not corrupted.