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.