Объясните пожалуйста на каком-то примере, как оно работает. Строится какое-то древо возвратов, а затем оно все последовательно возвращается... не могу понять.
Рекурсии везде плохо работают.
Дерево для хранения возвратов не нужно, возврат происходит в одно и то же место. Для такого используются структуры типа стек. В нормальных языках вообще используется их аппаратная реализация.
Если есть желание разобраться, как именно оно работает, можно заглянуть в потроха питона, они открыты, правда, ничего интересного там нет.