Salesforce provides documentation on the various "reserved words" in the Apex language.
Here they say:
Keywords marked with an asterisk (*) are reserved for future use.
... and then list, for example, "type" with an asterisk.
We already have code that uses "type" as the name of class attributes/properties and as local variables (without the knowledge that this documentation exists) and are now concerned that some future update to the Apex runtime will just break this code.
Often Salesforce protects the developer from future changes by allowing the developer to set the API version in the class's meta file. Has this historically worked when "future use" reserved words became truly reserved (so they cannot be used as identifiers)? I have the feeling this isn't the case, as I cannot use the "when" keyword as a variable name in code with an API version predating the introduction of the Apex switch statement.