This has come up during the discussion already. I don't know enough about other languages to speak with confidence, but apparently there already is precedent for this and/or some languages are at least considering making a similar change.
Note that scoping rules already vary between languages - in some cases, pretty widely. For example, Python is not block scoped - this works:
def f():
if True:
x = 42
print(x)
And Perl has dynamic scoping, where variables can be scoped to a call stack, instead of any lexical element of the source code. Javascript, as far as I know, is pretty notorious for having extremely idiosyncratic scoping rules (e.g. it is a common confusion how `this` is scoped in different contexts) and also has several different kinds of declarations with AFAIK slightly different scoping rules.
In C, a symbol is only scoped to a single file (as far as the processor is concerned) and in there, only from its declaration onwards, while in Go, a package-scoped definition can appear in any file of any package. And speaking of C, it doesn't have closures at all, so the scoping rules of loop variables are *already* very different.
So I think the case that you *currently* don't have to be aware of how a language is using scoping is pretty vastly overstated. What's more, the majority of programs won't actually be affected by this - and for those that are, it seems that empirically, the new rules will align more closely with what people expect subconsciously.
I don't think you should worry too much. Run your tests with the new loop variable semantics in Go 1.21 to see if everything still works. Most likely, it will - or you will discover a bug in your current code.