exe ou dll, c'est du pareil au meme ; le dll n'etant qu'un bout de code non-linke directement dans l'exe mais charge a l'execution de l'appli (d'ou l'idee de librairie dynamique, qu'on peut faire evoluer independament du programme qui s'en sert).
quasiment aucun programmeur n'a besoin de decompiler d'autres programmes, car ils travaillent sur des creations qui sont les leurs, ou avec des librairies dont ils ont la source.
apres pour les programmeurs tres bas niveau (developpeur de drivers, specialiste optimisation console, etc.), ils parlent le langage machine de certaines plateformes couramment, donc ils savent s'y retrouver dans les mnemoniques asm en hexa. C'est pas le genre de truc que tu apprends en un week-end, ca demande des annees de pratiques quotidienne.