I may need to make it more clear what the ViewModelContext is.
The ViewModelContext is a gateway to the model which is exposed by the ViewModel to the view (instead of exposing the model directly).
All the context does is monitor the model, and when it changes states (via code inside commands or databinding) it updates some change tracking information on the model.
The ViewModel itself can react on that when it happens, or could query that change tracking information much later (for instance on a save command). And also; the view can directly databind to this information (eg. a view could filter on items that have IsDeleted on true).
So, I'm actually taking change tracking out of the ViewModel whereas in most implementation of ViewModel that I have seen, some form of change track is always present inside the ViewModels (eg. ListOfRemovedItems, etc...)
Any thoughts?