Wenn man die Sache ganz fundamentalistisch und kontextfrei betrachtet, hast Du natürlich recht. Wenn $p vorher schon einen relevanten Wert enthielte, der im Falle eines fehlenden $_GET['p'] beibehalten werden muss, würde die if (!isset($p=$_GET['p'])` diesen Wert verlieren.
Da es hier aber eher danach aussieht, einen Default für einen nicht übergebenen Parameter zu finden, ist der Unterschied irrelevant.
Rolf
 nicht angemeldet
 nicht angemeldet Rolf b
 Rolf b Auge
 Auge Julius
 Julius Gunnar Bittersmann
 Gunnar Bittersmann Matthias Apsel
 Matthias Apsel