Fair enough. Let me explain our point of view:
wait() is not a normal C function. So there are many special cases where it can not be used like such a function. Some of those special cases can be shielded from the user with little effort, others with a lot effort, others not at all. For instance, there is no solution to call wait() from an external DLL.
No user in the last 8 years had the idea to put a wait() call inside the control statement of a loop. Nor had we. You just don't program in this way when you want clean code, even if it's valid C syntax. So I consider this a rather bizarre case with little meaning for practical programming.
"Fixing" it would require to re-write the for and while loop handling in the compiler for considering the special case of a wait() call. This would not only come at a cost of less new features, any special case handling like this also makes a program less stable and harder to maintain.
In fact we would put a lot of effort in ending up with a worse software than before.
I hope you understand our decision in such cases.