Просто пока вы думаете об этом как о компонентах и контейнерах это будет вызывать странности в понимании, нужно менять мышление на то, что это просто функции, и в главной функции update вызывается другая функция которая возвращает свой результат, и его главная уже функция преобразует и возвращает свой тип.