Wieso? Der click-Event auf das a-Element kommt beim p-Element vorbei (Bubbling) und dort lässt sich auch event.preventDefault aufrufen, um die Standardaktion des a-Elements zu unterdrücken.
Na sicher, aber die Verzweigung kann niemals zutreffen, weil das sich "this" bzw. "ziel" auf das p-Element bezieht und ziel.className aber versucht irgendwas am a-Element zu prüfen. Das schlägt also immer fehl und bubbelt ins nirvana ohne dass jemals das alert() oder das return false aufgerufen werden - und ja, preventDefault() wäre natürlich besser als ein "return false" (ist das jetzt schon in allen relevanten Browsern vorhanden oder muss man das noch nachbauen bzw. abstrahieren?).