OK I'll change to multiple arguments.

>> The default for lhost is localhost

> Was that a typo or a misread? :) I was talking about the default of the remote host value, rhost, not lhost: 

A typo (now fixed). The following paragraphs were correct and are correctly describing the rationale for using `localhost` as default for `rhost`.

> and it defaults to forwarding port 8000 from the current target host to port 8000 on localhost. But one can still override it to choose a different remote target, 
> with remote_tunnel(port=8000, remote_host='dbserver'):

That wouldn't work. `remote_host` is a misnomer, it should be `remote_bind_address` or something like that. It has to be either an IP address assigned to a local interface, or a DNS name that resolves to such an IP (or `*` or `0:0:0:0` to indicate all the interfaces). This is why I can't see how I can use `env.host_string` as a default.

Speaking of this, `local_host` as per your suggestion of parameter name is really confusingly similar to `localhost`, but I can't find a better word, so I'll go with this for one.