Perhaps Mark, as a proponent of the inline control variable, can provide a few more examples he's come across.
You might equally scratch your head over a gross type error (rejected as an error by the compiler), or misapplication of a signed type when the use case is crying out for an unsigned.
Without wanting to sound as though I'm attempting to apply ill-informed pressure on the FPC maintainers, this is something that the compiler /should/ warn about, but does /not/ warn about.
Allowing a properly-bounded local variable, similar to that belatedly added to C, would sidestep that by ensuring that the control variable went out of scope as soon as there was a possibility it was no longer defined. At that point the compiler could warn that usage of the legacy form (i.e. control variable declared at the head of the function) risked undefined behaviour, and could also detect the case where the locally-declared control variable had the same name as a variable in the surrounding scope and could warn the user appropriately.
That would move the fix from being DFA Deep Magic, to relatively straightforward compiler warnings extending those already in use.
MarkMLl