Smarty is a PHP template engine, like Pseudoscript.
Why template systems like Smarty are unnecessary
The main argument is that Smarty is just a cleaner but equivalent syntax to plain PHP.
PHP supports caching with APC, eaccelerator or commercial solutions like Zend optimizer, and you can also have caching directly with a php class.
To separate your PHP from HTML, use an MVC (model view controller) framework, like Zend Framework, Symfony, Cake PHP, CodeIgniter or just google it.