IL problema dell'accesso ai metodi non sussiste inquanto flexy fa la render di un template in base ad un oggetto e non e lui che setta le variabili ma la classe definita dall'utente che si occupa dell'output e che quindi puo definire metodi setter molto piu facilmente di smarty:
es:
// classe output che contiene i metodi dichiarati dall'utente
// come generateOptions, selectDate, formatDate ecc...
$output = new MyOutput();
// setto il template
$flexy->compile($templateFile);
// produco l'output passando per rif. la classe.
$flexy->outputObject($output);
Mentre in smarty le variabili vengono settate in un attributo della classe.
$smarty->assign('foo', 'bar');
Sicuramente la pulizia del codice e fondamentale ma chiamare ogni volta un metodo comporta un spreco di risorse eccessivo sia in termini di memoria che di cpu.