Non ! !
Les headers ne contiennent pas de code proprement dit ( à part quelques inline à la limite mais c´est un cas bien particulier). Les headers ne servent qu´à DECLARER des fonctions, variables externes, classes, structures & Cie dont tu pourrais avoir besoin . ..
Le vrai rajout éventuel de code se fera lors du linkage. Si tu n´utilises pas les fonctions d´un fichier compilé ( fichier *.obj *.o etc..) il n´y pas de raison pour qu´il fasse partie de l´exécutable au final. Mais il peut très bien y avoir des fonctions linkées en " cascade" ( une fonction que tu appelles qui elle même en appelle d´autre etc...)
Et puis n´oublie pas que windows fonctionne beaucoup sur l´utilisation de DLL.
L´exemple le plus flagrant est lorsque tu crées une appliaction MFC. Si tu choisis de linker les mfc en statique ou en dynamique tu verras une différence dans la taille de l´exe assez importante.