Допустим я ввожу 123. Условие 123 > 0 выполняется. Дальше вызов процедуры уже без последнего числа, т.е 12 и вот доходит ли до write() на этом моменте? Дальше опять 12 > 0. Затем 1 > 0 и 0 уже не входит
до write доходит, но только после вызова для n div 10, т.е. для числа левее, если оно есть. поэтому числа печатаются слева направо.
если переставить write до рекурсивного вызова, то будут печататься справа налево.