amel27,
Действительно @echo on показателен и это объясняет отказ от выхода из бесконечного цикла, но все равно поведение не совсем объяснимо. Например:
Код:

@echo on
setlocal
for /l %%i in (0,1,10) do (
set "var_%%i=%%i"
if %%i equ 5 goto:break
:break
rem
)
set var_
Т.е. получается, что после перехода на метку цикл отрабатывает в холостую. Что в принципе может когда-либо пригодиться, но согласен "if решает".