After RTFMing (http://openacs.org/doc/openacs-4/rp-design.html), I found a simple solution that does what I need (and most of what I want.)
So. Suppose you have a file /foo/bar.html and you move it to /baz/bar.html and you want old links to work. Create a new file /foo/bar.vuh with one line:
ad_returnredirect /baz/bar
This will return an HTTP 302, the browser will open the new file, and all of the links will work fine.