For Vanilla 2, here is an article from Ed Eliot on using extract() for a template system. CodeIgniter. is using something like that. CodeIgniter also have a feature to make possible the use of '<?=' even if it's turn off in in your php settings.
I like also Zend Framework Template. In the controller, it look like $view->a = 'Some content'; $view->b = 'More content'; and in the template file<p> <?php echo $this->a; ?></p> <p><?php echo $this->b;?><p>. It's using magical handlers __get() and __set() to isolate its private variables from the template variables.
I tried it on the setting global form without performance issue (on windows vista, php5.2.3). I will create a theme and make more test (on different platforms).