That's it, I'm going to do it: I have now committed myself to writing a scalable, caching, reverse HTTP proxy.
The biggest question right now is implementation language; obviously "threading" of some kind is required so it is a choice between Perl's anyevent, Python's twisted, Rubys event machine, or node.js.
I'm absolutely, definitely, not going to use C, or C++.
Writing a a reverse proxy in node.js is almost trivial, the hard part will be working out which language to express the caching behaviour, on a per type, and per-resource basis.
I will ponder.