Just to add to what James said, we did add some logic at 100.11 to improve the scenario you're seeing.
In short, at 100.11 you shouldn't see this any more, even with default feature request mode of OnInteractionCache. The only exception might be if the feature is in a loaded state (this typically happens if you want to get the full information on all of a feature's attributes, and not just those attributes needed for symbology and labeling - you would have called load() on the feature, or loadAndRefresh() on the ServiceFeatureTable). I will have to double-check to see what the behavior is if a cached feature that no longer exists in the service has been explicitly loaded.
Before 100.11, what you can do is take the two features (or more) that you get back from the identify, and call loadOrRefresh() on the ServiceFeatureTable to which they belong. Any feature that was in the local cache, but that is no longer in the service's data, will have the OBJECTID cleared. It's an extra round trip to the service, but should be fairly quick unless your features have very large text fields on them.
At 100.11, this is kind of built in to the Identify. Before handing you back the results of Identify, Runtime will now recognize features that no longer exist at the service and both strip them out of the Identify response AND remove them from the local cache.
Let us know if that helps.