When an invalid namespace is provided to Link/BaseLink the invalid namespace is quietly ignored and replaced by Namespace.MAIN (per Link.__init__() behaviour). [This happens in BaseLink.lookup_namespace() and Link.__init__()].
Raising an Exception would probably be more appropriate.
This was one of the @TODOs from gerrit:442168