Ideally one should add a new checkbox("Keep non existent recent project files in list") to Tools->Environment->Files. When checked the EnvironmentOptions.RemoveFromRecentOpenFiles part of the code is skipped. Very easy to implement, but somehow I'm under the impression that it wouldn't be a very popular feature. Basically other then you no one would use it.
Actually, you can almost count me in... Except, I moved to a diff solution.
I have a "project group" with all my "commonly used projects". => So I no longer depend on "recent projects".
However, I have projects on that list that do temporarily disappear. (They only exist on some branches in my version control).
"project group" also have a check for non-existence.
But with "open last group on IDE start", those are kept in the list (and displayed strike-through).