If you use register_object() you can restrict the methods which can be called and also it means that you call the methods with a different (more Smarty-like) syntax:
<?php
// registering the object (will be by reference)
$smarty->register_object('foobar',$myobj);
// if we want to restrict access to certain methods or properties, list them
$smarty->register_object('foobar',$myobj,array('meth1','meth2','prop1'));
Template:
{* access our registered object *}
{foobar->meth1 p1='foo' p2=$bar}
From http://www.smarty.net/manual/en/advanced.features.php