echo $begrüßung;
Ist das eine Angewohnheit von PHP, variable Variabeln nur in der Schleife in der sie generiert wurden gültig sind?
AFIAK ist das ein Prinzip, dass fast allen Programmiersprachen zugrundeliegt.
Nein, der Scope beschränkt sich, zumindest unter PHP, nicht nur auf den aktuellen {}-Block sondern auf die gesamte Funktion. Im globalen Adressbereich (außerhalb von Funktionen) deklarierte Variablen gelten auch nur dort.
Vermutlich ist es ein Denkfehler und die entstandenen Variablennamen entsprechen gar nicht der Vermutung des OP. Eine Kontrollausgabe mittels print_r($GLOBALS) oder var_dump($GLOBALS) sollte aufklären, was wirklich passiert ist. (Vorher ein <pre> erhöht die Übersichtlichkeit.)
Ansonsten gibt es kaum ein Problem, das sich nicht mit einem Array statt variablen Variablen einfacher lösen ließe.
echo "$verabschiedung $name";