Работать с MVVM в Silverlight сложнее, чем в WPF, но мы сделали это. Да, мы помещаем асинхронный вызов службы в ViewModel. «Модель» в нашем случае - это прокси-объекты, которые отправляются туда и обратно через вызов веб-службы. К сожалению, это означает, что некоторые из ваших функций находятся в вашем клиентском ViewModel, а некоторые - на стороне сервера. Там действительно нет способа обойти это.
... и да, пусть обработчик событий Async Complete записывает в свойство в ViewModel и убедитесь, что свойство (или коллекция) реализует INotifyPropertyChanged (или INotifyCollectionChanged). Если вы возвращаете объекты «модели» из веб-службы, и эти объекты сами не реализуют INotifyPropertyChanged, то вам следует рассмотреть объект-оболочку ViewModel вокруг них. Таким образом, если у вас есть View для каждого из этих объектов, они могут выполнять двустороннюю привязку.