Cita: Lo sé, pero muchas veces es muy dificil no imprimir nada [...]
Es suena a mal hábito, claro que es fácil no imprimir nada antes de usar header(), session_start(), etc.
La idea principal es diseñar un flujo lógico adecuado, eso de ir improvisando sin tomar en cuenta esto es poco efectivo.
Muchas veces uno cree que para colocar valores (imprimirlos) en ciertas partes de nuestro HTML hay que meter el código ahí mismo, pero eso está equivocado, hay muchas técnicas para procesar la lógica mucho antes de comenzar a imprimir algo.
El patrón MVC es una de estas técnicas.