Something I noticed that was not noted here. This will compile:
for (int i = 0; i < 10; i++)
{
int a = i * 2;
}
for (int i = 0; i < 5; i++)
{
int b = i * 2;
}
Taken together, these design decisions seem inconsistent, or at least oddly restrictive and permissive, respectively.