Если вы используете Linq-to-sql, классы сущностей, сгенерированные linq-to-sql, являются моделью, а контекст данных - это способ доступа к ним. ViewModel предоставляет привязываемый интерфейс к представлению и сопоставляет его с соответствующими классами сущностей linq-to-sql.
На мой взгляд, это отличная архитектура для многих приложений. Существует реальная потребность в отображении между представлением и моделью, которая обрабатывается. Очень немногие приложения на самом деле выигрывают от наличия модели, сопоставленной с другой моделью хранения, для чего предназначена Entity Framework.