On Wed, 25 Feb 2015 05:06:37 +0000, carlo von lynX wrote: ....
the advantages of that aren't obvious to me. why would i need to make every networking app hold the hand of its router to let it know it's still needed?
You answer your question yourself:
tor is on its way to becoming an AF_TOR - a networking esssential. making a hidden service could one day be as simple as doing listen() on an AF_TOR socket...
The AF_TOR listener would go away with closing the listener socket as well (and thus is bound to the lifetime of the process); so binding a hidden service to the control connection is the obvious analogy.
Whether tor as such should exit with loss of control connections is (more) debatable - if my app starts the tor process, I'd expect it to terminate when it detects that I'm no longer there. If it's a system/shared daemon we'd need to talk about how it comes into existence in the first place, and how it is shared.
Also, would you entrust your hidden service keys to a system-wide tor process? :-)
Andreas