Как я понял, эти функции только строку возвращают
Нет, ты не правильно понял. Ты имей ввиду, что даже если ты в шаблоне написал {$var}, тебе не $var сразу возвращается, а $_smarty_tpl->getVariable('var')->value. То есть все прогоняется через Smarty-объект в любом случае.
А результат подобных функций может быть абсолютно любым, даже объектом. {processor} же возвращает результат-массив. Посмотри что там в функции прописано.
Кстати, а если в функцию расширения function.processor.php добавить еще один параметр, например, props, который будет подставлять в вызов процессора набор параметров, взятый из MODX? по той же схеме, как делает ns?
Идея по-моему довольно здравая. Допиши эту функцию и оформи топик, погоняем, и может действительно и включим в пакет. Только имей ввиду, что нормальная практика перечислять сразу несколько наборов, к примеру {snippet name=«snippet@propertySet1@propertySet2@propertySet3»}