Код:
var
i: Integer;
begin
for i:=1 to 12 do
begin
Sleep(i*0);
end;
end;
все честно: Sleep будет принимать i от 1 до 12. потому что переменная i используется в теле. если заменить Sleep(i*0) на Sleep(0), то i, скорее всего, будет принимать значения от 12 до 1. но это не баг: ведь разработчику не важны значения переменной в теле - ему главное 12 раз выполнить тело и это будет сделано верно.