Having a policy of only including what you use also helps to highlight the actual dependencies. For example, when making this change I found that the readFabricationZone() function in smart_card_higher_functions.[hc] is used (only) in smartcard.c and itself only uses a function from smartcard.h, possibly indicating it would live more happily in smartcard.[hc].