Hai ragione col concetto, è praticamente
Funziona perché usa un operatore shortcut, ciò vuol dire se la prima condizione é falsa la seconda non viene valutata perché il risultato finale sarebbe sempre falso comunque.Codice PHP:
if (!$variabile) $variabile = 'valore';
In quel caso prende la prima condizione e verifica se $variabile non è settata. Se viene valutata come vera c'è bisogno di valutare anche la seconda condizione che però sempre valuterà a vero perché è un'assegnazione (quindi setta il valore). Se la prima condizione è falsa invece l'intera condizione non può mai risultare in vera quindi non c'è bisogno di valutare la seconda.
Il secondo problema però non c'entra niente col primo. Ottieni quell'errore perché stai provando di inviare un header benché hai già inviato l'output a video.