Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Nein, es sei denn du zögerst die erste Ausgabe des Scriptes extrem lange hinaus. Möglich z.B. durch die Verwendung von Template-Klassen, sodass erst der ganze Code abgearbeitet wird und zuletzt die Daten in das Template eingesetzt und dann abgeschickt werden. Dann kannst du zu jedem Zeitpunkt Cookies setzen.
Das ist prinzipiell nichts anderes als die ob_*-Methode, aber anders geht es nicht.
Lies dir auch die Dokumentation dazu durch um zu verstehen, welchen Grundgedanken Templatesysteme haben sollten (Trennung von Anwendungslogik und Darstellungslogik...).
Smarty hat eine eigene Syntax, die aber nicht jedes mal neu interpretiert wird. Es wird einfach eine PHP Datei aus deinem Template gemacht, welches dann einfach includet wird.
Du kannst dadurch die Vorteile von PHP Caches wie Zend Cache oder PHP Accelerator nutzen. Aber auch ohne Caching ist Smarty im Vergleich zu anderen Templatesystemen recht schnell.
Das schönste ist aber, dass Smarty einen übersichtlichen aber dennoch mächtigen Funktionsumfang hat.