isset() hatte ich persönlich immer als Prüfung von ganzen Variablen eingeordnet und array_key_exists() eben als Prüfung von Array-Schlüsseln. Ich habe selbst noch nicht probiert, ob da Unterschiede in der Funktion liegen.
Wenn das Feld nicht existiert, müsste array_key_exists() eigentlich meckern, isset() hingegen nicht, weil ersteres einen Feldinhalt prüft, letzteres hingegen nur allgemein.
Vielleicht ist array_key_exists() aber auch nur der Versuch, den Interpreter mit zugemülltesten Namensraum im Universum zu bauen ;>
Gruß,
soenk.e