$IFDEF und $IFNDEF kennen ausschließlich $ELSE.
$ELSEIF gehört zum $IF
Ja, man kann $ELSEIF auch beim $IFDEF einschmuggeln, aber es bleibt dennoch ein
ConditionalDefine und kennt somit keine direkte Angabe vom $DEFINE.
Aber das funktioniert auch erst, seitdem die eigentlich getrennten Bedingungen vermischt wurden, so wie heutzutage auch $ENDIF und $IFEND nahezu gleichwertig sind, obwohl sie es anfangs absichtlich nicht waren, um vor "alten" Compilern, die noch keine ConditionalDefines kennen, davor verstecken zu können.
Also per se ist es eigentlich ein Bug, dass $ELSEIF im $IFDEF geht,
aber zum Glück wird Diesen hoffentlich niemand reparieren.