Я согласен, что выбрал бы EF4 вместо наборов данных.
Мне нравится, что они добавили LazyLoading (DeferredLoadingEnabled) в EF4. Я использую функцию в Linq to SQL и пошел бы с первым EF, если бы он был там. Но это доступно сейчас.
Используя EF, такие вещи, как RIA Services, отлично работают для передачи данных в приложение Silverlight. Раньше мне приходилось делать больше прокси данных вручную с наборами данных.