Ok, you may close this. After doing some testing + some hints by Michitux on IRC (see <http://irc.dokuwiki.org/index.php?d=2010-06-26>), I found out that I used wl() the wrong way (the translation-plugin does it the wrong way, too). Therefore this is a template:vector and plugin:translation bug, not a wl() one.
Maybe this small conclusion is useful for someone:
My error is rooted in the different behavior of wl() and html_wikilink(). If $conf["userewrite"] and $conf["useslash"] is set to 1 (wiki installed on <http://example.com/dokuwiki>),
- wl(":start") leads to "/dokuwiki//start"
- html_link(":start) leads to "<span class="curid"><a href="/dokuwiki/start" class="wikilink1" title="start">start</a></span>
The error is: page IDs have to be cleaned before using them with wl() (-> removes the leading ":"), like it also has to be done for e.g. for auth_quickaclcheck():
- If your IDs are absolute already, run them through cleanID() before passing to wl()
- If your IDs are not absolute, use resolve_id() first
- wl() does no cleaning itself