I tried again today with a new build. Exactly the same problem. As I said, it's only cosmetic but somehow very annoying.
Either it's the ZIP (logical, that's why it's packed) or the clients are still missing something that is on my computer with the development environment and is not copied into the ZIP.
The EXE file is tiny. So I only copied this file via Bluetooth to a target computer. The EXE file still has the correct icon in the download folder of the target computer. If I then move the file to the correct folder, I am of course asked whether I want to replace the existing file. No sooner said than done. And at that very moment, the icon changes back into a "J".
Does Windows itself perhaps somehow notice something here and spit in my soup? Is it possible that the EXE itself is registered in some way under Windows because of its name and that is why the icon is always "destroyed"? If I rename the EXE file and then copy it to the appropriate place, the EXE file keeps its icon. As soon as I give the EXE file the correct name again, the icon changes.