a mio avviso è il metodo peggiore, piu che altro perchè un metodo del genere ha una mantenibilità bassissima.

prova a vederti come Zend_Framework gestisce i form. Li hai un esempio ben strutturato e ben ingegnerizzato (a mio avviso) di quello che stai cercando di realizzare tu, e ti spiega anche i criteri di programmazione (design patterns) seguiti

A mio avviso sono 3 i dettami principali da seguire:

1) pattern MVC per separare logica di business, azioni, e rappresentazione dei dati

2) nel tuo caso, seguire l'idea dello zend per la gestione e la creazione dei form

3) al posto del punto 2 (ma qui bisogna vedere l'esigenze di progetto), lasciare in html la struttura del form e sostituire con chiamate a metodi di un oggetto la creazione degli elementi dinamici, ovvero nel tuo caso l'intestazione del form e i vari input. Facendo questo, l'oggetto view che gestisce il caricamento del template potrebbe inizializzare correttamente i dati da inserire dentro all'oggetto formHelper che creai i vari input, e usare l'oggetto in fase di rendering. La modifica dell'aspetto grafico del form, a meno di stravolgimenti, può essere gestita usando CSS diversi a seconda del template

i punti 2/3 sono anche complementari (un esempio del punto 3 è l'uso degli helper in CakePhp ad esempio)