Дело в том, что смарти - это шаблонизатор, т.е. он отвечает за представление (рендеринг) данных перед отдачей в браузер и его работа обычно начинается тогда, когда работа контроллера уже завершена. Именно по этой причине прямых путей передачи чего-либо из смарти обратно в код не предусмотрена, т.к. оно не нужно обычно.
И, по хорошему, нужно придерживаться такого стиля программирования, иначе получится дичайшая каша и разобраться, где и кто поменял состояние будет все сложнее и сложнее, а, стало быть, отлавливать косяки и баги, рано или поздно, станет мега-трудной задачей.
В общем я категорически не рекомендую пытаться что-то передавать из смарти обратно в код, только если это не отрендеренный шаблон, например, письма, который рендерится до завершения работы контроллера. Во всех остальных случаях односторонний поток данных обязателен.