Ok, spiegazione (semi-tecnica: non ho voglia di entrare troppo nei dettagli, e nemmeno di trovare giri di parole adeguati

): ogni volta che SMF deve caricare un template usa la funzione "loadTempalte('nometemplate');". Questa funzione va a cercare i file nometemplate.template.php e li require_once in modo da fornire a php le funzioni necessarie a generare il template.
La funzione cerca in due directory: quella del tema "corrente" e quella del tema di default. Se non trova il file nella prima lo cerca nella seconda. Trovato o da una parte o dall'altra lo usa.
Ora, cosa succedeva nel tuo caso?
SMF trovava il file nella directory del tuo tema (silentwave) e quindi lo caricava. Problema è che poi al suo interno non c'era alcuna funzione, quindi quando SMF andava a chiamare la funzione (...non ricordo più se è un subtemplate o un layer, comunque è indifferente), non la trovava e quindi procedeva con l'elaborazione del template come se nulla fosse.
Caso diverso se non fosse stato un sub-template (o un layer) perché in quel caso avrebbe cercato la funzione template_main e se non l'avesse trovata avrebbe restituito un errore.