Добавьте трейсы и поймете почему так происходит:

Код AS3:
var pos:Point = new Point();
var cc:int = 0;
for (pos.x; (pos.x < 30); pos.x++) {
trace("pos.x = " + pos.x);
for (pos.y; (pos.y < 30); pos.y++) {
trace(" pos.y = " + pos.y);
cc++;
}
}
trace( cc );
В начале второй итерации внешнего цикла переменная pos.y уже равна 30. Поэтому внутренний цикл выполняется только один раз. Во втором же случае вы каждый раз инициируете pos.y нулем.