Поскольку вы создаете переменную области видимости. Java говорит вам, что это ничего не делает, потому что все, что он делает, - это выделить память, и как только цикл пройдет снова, вы потеряете это и сделаете новый. По сути, весь цикл является NOP, поэтому он говорит вам, что он сводится к инструкции do nothing.
В результате цикла, который является NOP, я подразумеваю, что объявление в цикле является NOP.
Причина, по которой работает версия с фигурными скобками, заключается в том, что компилятор не проверяет использование в пределах области действия, потому что есть фигурные скобки. Вероятно, это связано с деревом разбора, генерируемым из одного оператора строки, против дерева синтаксического анализа, созданного при наличии полной области цикла.