Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Theres nothing wrong with it it's just "non-standard", and I don't like it myself.
Maybe it's a carry over from applications. When main() finishes, the program stops. To some people (like me ), it's counter-intuitive to continue processing events/interrupts after the main function has returned.
usually, that's not the way you make it. The "idle loop" is there for cases where system is idle. Screensavers or Seti@HOME are rather low-priority threads that are started when the system detects no activity for a given period of time.
The idle loop, instead, is always there, as soon as there's no thread ready in the system, it gets executed until any thread is ready.