Я считаю, что это причина этого. Найдено в Django документах.
Тег include должен рассматриваться как реализация «рендеринга этого подшаблона и включения HTML», а не как «разбора этого подшаблона и включения его содержимого, как если бы он был частью родительского элемента». Это означает, что между включенными шаблонами нет общего состояния - каждое включение является полностью независимым процессом рендеринга.
Блоки оцениваются до их включения. Это означает, что шаблон, который включает блоки из другого, будет содержать блоки, которые уже были оценены и обработаны, а не блоки, которые могут быть переопределены, например, расширяющимся шаблоном.