Eventually, apilinks should just go away. I think I have convinced Michael (pydoctor's maintainer) that pydoctor should just genereate an objects.inv that sphinx can read. Then the regular :py:*: annoations can be used, rather than the apilinks ones (which interpert <> backwards anyway).
That doesn't address the issue of what to do in the mean time. Looking at the code, it looks very similar to what the builtin extlinks extension does; except that apilinks wants `path.to.object <title> and extlinks wants `title <path.to.object>`. (But I guess this doesn't address the issue of # in the links being put in the wrong place. But, https://twistedmatrix.com/documents/current/api/twisted.web.iweb.IRequest.ge... does exists (probably to make this kind of linking work.