It is a good practice only to include what you use (IWYU) something that UE4 started doing in 4.15. The header file (.h) doesn’t need to include ConstructorHelpers.h in order to declare its functions and variables. The implementation file (.cpp) however needs those function declarations to call the function.
Whenever you change a header file it has to recompile all the classes that uses that header while if you change the implementation file it just has to compile that specific implementation file.
You can also get multiple definitions with the same name when including it in the header file.