>>8
Valgrind is certainly a good argument for C. But any type of resource can leak, not only those detected by valgrind.
It's all about that: in C you must release your mutexes by hand, release your memory by hand, maintain your invariants by hand...
Even someone obsessed with details _will_ fuck-up. Sooner or later.
It's like saying static analysis or testing will catch all your bugs: it does not really work like that.
I suggest you read
http://fr.slideshare.net/dcacm/patterns-of-human-error