In addition to what marto said, there's one bit of difference (literally) between a Windows program and a console (AKA "DOS") program. And ActivePerl, for one, includes a script to flip that bit: exetype. This is how wperl.exe is created out of plain perl.exe
This is what perl2exe's own -gui option (which at least you used to have to pay extra for) does.
Comment on Re^2: Supressing MS-Dos Window when running a PERL exe