Let me trace sum_of_digits() step by step:
Call : sum_of_digits() returns sum_of_digits()
Call : sum_of_digits() returns sum_of_digits()
Call : sum_of_digits() returns sum_of_digits()
Call : sum_of_digits() hits base case, returns Then the results come back: , then , then . Four calls total, each peeling off one digit.