Sobrescribir un bloque dentro de una plantilla `include`d desde una plantilla extendida

Tengo lo siguiente:

base.html

<html>
    {% include 'header.html' %}
    <div>
    {% block content %}Default Content{% endblock %}
    </div>
</html>

header.html

<header>
     {% block logo %}Logo 1{% endblock %}
</header>

homepage.html

{% extend 'base.html' %}
{% block logo %}Logo 2{% endblock %}
{% block content %}Yap Yap Yap{% endblock %}

Esencialmente, esto no funciona. Cuando renderizo lahomepage.html Yo obtengo

<html>
    <header>Logo 1</header>
    <div>Yap Yap Yap</div>
</html>

pero si muevo el código enheader.html dentrobase.html (es decir, deshacerse de lainclude en total) funciona bien. ¿Alguien puede explicar por qué este es el caso?

Tengo la sensación de que tiene algo que ver con elincluded ¿Las plantillas se procesan después de que se hayan procesado sus padre