First, you need to distinguish between two things: what is in your database, and what the user is shown in the user interface. Using the alternative selection method, data is written to you database (if you commit it there, or if it has been previously committed, like your example) which will not be shown in the user interface. This may not be a problem if the object from that screen is not committed. The path through your application Default screen ==> Special selectable screen ==> Save ==> Default screen ==> Save will probably lead to problems.
Note, however, that this works exactly like you programmed: you made certain only selectable airports can be set, but that is not your requirement. Your requirement seems to be: selectable or whatever has been selected. This changes your constraint to:
[Selectable
or
Flight_Airport = '[%CurrentObject%]']
To my knowledge, this behavior isn't new: I ran into this 'problem' in Mendix 3.