Thanks for acting on my request to have this re-opened. There was a bunch of stuff I was gonna ask but I've forgotten now. I can tell you what I've done since. I think I had to move the app to the reverse proxy web server in the end. I ended up using something like
$conf['baseurl'] = "http://".$_SERVER["HOST_NAME"];
because form some reason leaving it blank led to problems described above.
The other unique circumstance I have is that this is running on my home machine behind an ADSL router. From the outside, it is accessed by
http://[username].dyndsl.com/wiki/ but this DOES NOT resolve from the LAN. On this inside it is
http://[hostname]/wiki
Again, leaving it blank caused problems but using "http://".$_SERVER["HOST_NAME"]; seemed to fix it.
I'm not sure whether I would still be able to get things working using the reverse proxy due to the fact that I cannot hard-code the hostname part of the URL, autodetection doesn't behave as desired (in these unique circumstances), and $_SERVER["HOST_NAME"] may not resolve the the user-agent's request version of HOST_NAME (sent to the proxy).
Anyway, after all that, not sure if any of this information helps :/