Спасибо, учел Ваши замечания, и правда упустил этот момент в ночи кодинга, исправил =)
Но, к сожалению, проблему это не решило.
С утра подумал, что незачем заного вызывать функцию заточки первого (enFirst()) при неудаче в (enRest()),
т.к. в случае неудачи цикл начнет выполняться заного так или иначе.
В итоге:

Код AS3:
function enchantingFour(event: MouseEvent): void { //Нажимаем на кнопку
enFirst();
//При успешной заточке на +10 вывод в динамическое текстовое поле количества попыток заточки первого ...
//...и обнуление переменных для повторения заточки с нуля.
memo.text = tries + " Попыток";
enchant = 0;
tries = 0;
}
function enFirst(): void { //Точим первое
while (enchant < 10) { //До тех пор, пока не заточится на + 10
chance1 = Math.random(); //Шанс заточки 75%
if (chance1 * 100 < 76) { //Если успешно заточилось первое
enchant++; //Прибавляем уровень заточки
tries++; //Увеличиваем счетчик попыток заточки первого
trace("ПЕРВОЕ - удачно");
enRest(); //Точим остальные
} else { //Если не заточилось первое
enchant = 0; //Сбрасываем заточку
tries++; //Увеличиваем счетчик попыток заточки первого
trace("ПЕРВОЕ - НЕудачно");
}
}
}
function enRest(): void { //Точим другие
chance2 = Math.random(); //Шанс 75%
if (chance2 * 100 < 76) { //Если успешно заточилось второе, точим третье
trace("второе - удачно");
chance3 = Math.random(); //Шанс 75%
if (chance3 * 100 < 76) {
trace("третье - удачно"); //Если успешно заточилось третье, точим четвертое
chance4 = Math.random(); //Шанс 75%
if (chance4 * 100 < 76) {
trace("четвертое - удачно"); //Если успешно заточилось и четвертое...
enRest(); //...Возвращаемся к заточке со второго
} else {
trace("четвертое - НЕУДАЧНО"); //Если не заточилось четвертое...
}
} else {
trace("третье - НЕУДАЧНО"); //Если не заточилось третье...
}
} else {
trace("второе - НЕУДАЧНО"); //Если не заточилось второе...
}
}
Трейсом отследил выполнение программы, шаги идут верно. Вроде работает. Поправьте, если не прав =)