Yes, a ViewModel should be immutable, preloaded data with no "behavior."  Think of a ViewModel as a data transfer object (DTO).  The controller/action orchestrates the services and defines the logic and behavior.

I know John had this refactored, but hadn't pushed yet.