Until recently, (*_namespace, *_title) pairs in the database never had a negative value for *_namespace. Somehow, that convention changed recently: the pagelinks table now contains links to Special: (-1) and Media: (-2) pages as well, causing code making assumptions about the nonexistence of negative namespaces to fail (e.g. bug 16158).
On top of this, behavior for registering links to special pages is inconsistent. According to a quick test Splarka ran early this morning, links through [[Image:Foo.jpg|link=Special:Bar]] are always registered, while regular links like [[Special:Foo]] are only registered if the special page doesn't exist; links to existing special pages like [[Special:Allpages]] are *not* registered. AFAIK, tests concerning links to the Media: namespace or transclusion (stuff like {{Special:PrefixIndex/API}}) haven't been done yet (if you feel like it, go right ahead).
We should decide to register all links and related stuff to Special: and Media: pages, or to register none of them. The current behavior is confusing and inconsistent.
CCing to Tim as Splarka tells me he knows more about it.
Version: 1.14.x
Severity: normal