Yes, this can become a security problem in some cases to inject unwanted behaviours in existing code.
Programmer Alice uses 2 libraries A and B written by two different authors. A provides a general `proc foo[X](x: X)` that Alice uses in her code. She tests her program and releases version 1. Later on, B author adds a more specific `proc foo(u: int)` in module B. When Alice prepare version 2 of her code, now the new `foo` is called by overloading even if she did not touch the original part of the code that was well tested when version 1 was released... Morality: always run full couverture complete tests...
