Statically linked modules:
If you link a module statically using use_module, it will inherit some of the parents cflags, cxxflags and defines to ensure the library is compatible. If the static module is linked by more than one module with different e.g. run-time library requirements. The static module is compiled multiple times and linked accordingly. If the modules share the same requirements, then the static module to be linked is only build once.
Dynamically linked modules:
If you link the project dynamically, WAF will take care of copying the shared library i.e. DLL on Windows into the binary output folder for you. You will need to load the module in code using the SDK's InitializeEngineModule(...) function.