I have investigated this a bit further and found that there are quite a lot of outdated entries and that this also seems to be the case for WolframAlpha queries. One possibility to do checks is to use another data source for airports, one that I have found is ourairports.com which at least seems to do regular updates and showed correct up to date values for some spot checks I did. Using this as a reference we can use the following code to check for differences:
airportfile= FileNameJoin[{$TemporaryDirectory, "airports-download.csv"}]
URLSave["https://ourairports.com/airports.csv",airportfile];
content = Import[airportfile];
Length[content]
which gives 63289 entries in that file (on 2021-03-25). To check which of those have both a valid IATA and ICAO code, we can use:
iataQ[s_String] := StringMatchQ[s, RegularExpression["([A-Z]){3}"]]
icaoQ[s_String] := StringMatchQ[s, RegularExpression["([A-Z]){4}"]]
Using these we can extract those entries:
currentids = Select[content[[2 ;;, {17, 16}]],
MatchQ[#, {_String?iataQ, _String?icaoQ}] &];
Length[currentids]
giving 8208 (at least today, 2021-03-25). Using that data, we can create replacement rules with which we can correct or check outdated entries, e.g.:
icao2iata = Dispatch[(Reverse /@ Rule @@@ currentids)];
iata2icao = Dispatch[Rule @@@ currentids];
and check that AirportData indeed returns something else:
AirportData["FAOR" /. icao2iata]@"ICAOCode"
Doing this for all the ~8000 entries I found 433 entries where the ICAO code differs between ourairports.com and AirportData, 48 entries where IATA codes differ and 3219 entries which AirportData did not even know (these numbers were from yesterday, they might have changed slightly for today). Warning: this check takes a few hours to run and as a mass query is not really friendly to WRI servers, so don't repeat if not for good reasons.
With the replacement rules icao2iata and iata2icao one should at least be able to implement some workarounds for outdated AirportData entries. Making use of the other columns in the downloaded files one could also extract some of the other properties for those entries that are missing in AirportData.