В общем, да
Если в двух словах, то во флаттере есть 3 дерева
Первое дерево - дерево виджетов, иначе говоря - код
На основе дерева виджетов строится дерево элементов, которое фактически отслеживает изменения виджетов в коде
Ну и третье дерево - дерево рендер объектов. На его основе собственно и строится тот интерфейс, который мы видим
А зачем так сложно? Почему не сделать два дерева, одно для виджетов, второе для рендеринг элементов? И то, кстати, скорее всего даже не два дерева, а одно, а второе это просто ссылки на виджеты из первого