I'll admit exception handling is a little over the top for a shell, but bash has a few tricks up its sleeve too.
What would you say to a job-queuing program whose main "loop" is essentially the single statement "wait", and which did everything else by trapping SIGCHLD? Take a look at http://sitaramc.googlepages.com/queue.sh (but note: I wrote it for a lark and it seemed to work fine in testing but I never actually used it "in production")