Cytat
Pomyślałem że stworzyć singleton do którego wrzucalibyśmy dane z wszystkich metod. Singleton posiadał by metodę prywatna 'render' która tworzyła by obiekt smarty, wybierała widok, wysyłała all do szablonu i zapuszczała by display
Nie za dużo tego?

To nie wygląda na dobrze przemyślany pomysł - jeden obiekt = jedna odpowiedzialność.
Podglądnij, jak to jest zrobione w symfony. Akcje zawierają kontener (ang. parameter holder), w którym możesz zapisywać dane pochodzące z ich metod. Nie jest on żadnym singletonem - przekazywany jest do instancji klasy akcji. Po wykonaniu łańcucha akcji, cały ten kontener jest przekazywany do obiektu widoku, który może te dane przesłać dalej do szablonu.
Jest to dosyć eleganckie rozwiązanie, bo zapisujesz dane w formacie niezależnym od rodzaju wyjścia. Możesz także udekorować taki kontener, jeżeli potrzebujesz dodatkowych informacji.