How is this not just a more verbose equivalent of a shell script watchdog? The idea is sound (if hardly mind-bending), but the implementation here seems overly complicated.
For starters, it is baked into the language and can handle things like dynamically adding or removing items from the supervisory tree; it works are a more fine-grained level than shell scripts. It can also provide both all-or-nothing (e.g. if one item dies then restart everything in my supervisory tree) or one-for-one (just restart the bit that died).
If it really bothers you, there is LFE (Lisp-Flavored Erlang). Like Python's whitespace, Perl's line-noise, etc. this is one of the first things people find strange along with single-assignment and then fades pretty fast.