No se puede entender este código recursivo de tortuga pitón

Esta es la primera vez que hago una pregunta, espero que algunos de ustedes encuentren tiempo para responder.

Entonces, mi objetivo es escribir un script de Python usando el módulo de tortuga para codificar un árbol de Pitágoras.

He pasado días en eso, y realmente no podía avanzar más allá de cierto punto, así que busqué en línea para ayudarme. He encontrado un código que hace lo que quiero pero con muy pocas líneas de código:

import turtle
t = turtle.Pen()




LIMIT  =11
SCALAR = 0.5 * (2 ** 0.5)


def drawTree(size, depth):

    drawSquare(size)

    if depth + 1 <= LIMIT:

        t.left(90)
        t.forward(size)
        t.right(45)
        drawTree(size * SCALAR, depth + 1)

        t.forward(size * SCALAR)
        t.right(90)
        drawTree(size * SCALAR, depth + 1)

        t.left(90)
        t.backward(size * SCALAR)
        t.left(45)
        t.backward(size)
        t.right(90)



def drawSquare(sideLength):

    for i in range(4):
        t.forward(sideLength)
        t.left(90)



t.up(); t.goto(-100, -200); t.down()
drawTree(170.0, 0)

Así que entiendo la mayor parte del código, excepto el segundo y el tercer párrafo del "si": ¿por qué se ejecutan alguna vez? Si la función se repite, nunca llega a ese punto normalmente. Estoy seguro de que me estoy perdiendo algo realmente fácil aquí y espero que hayan entendido mi pregunta :) ¡gracias de nuevo!

Respuestas a la pregunta(2)

Su respuesta a la pregunta