This is very cool!
This is a consequence of how static libraries work and how global variables are handled. For now, if mixing static libraries and shared libraries, link the static library into the executable / shared libraries only once. This is a general rule of thumb that is relevant to most static libraries. Linking the static library into multiple shared libraries or a shared library will cause issues. We are working a way mitigate these issues in ITK, but it would still require explicit action to call the relevant methods in applications that want to build this way.