Да. Помойму логично представлять себе работу этого запроса в два этапа.
1 - сначала выборка данных
2 - потом вставка уже выбранных данных
Кстати, обратное поведение наблюдается в случае временных таблиц. Например такой код уйдёт в бесконечный цикл:
X++:
TmpABC TmpABC_1, TmpABC_2;
;
TmpABC_1.clear();
TmpABC_1.doInsert();
TmpABC_2.setTmpData(TmpABC_1);
while select TmpABC_2
{
info("!!!");
TmpABC_1.clear();
TmpABC_1.RefRecId = TmpABC_2.RefRecId + 1;
TmpABC_1.doInsert();
}
info("???");