Здравствуйте, IT, Вы писали:
IT>Кроме семантического несоответствия больше никаких проблем.
На такую непосредственность и возразить-то сложно.

По-моему, семантическое несоответствие — это самое плохое, что можно было бы придумать. Приговор, я бы сказал.
IT>Для твоего примера как-то так:
IT>IT>(from o in orders where o.OrderDate < xxx select o).Update(new order { delayed = true });
IT>
Ужас.
Потом, что такое "Update(new order { delayed = true })"? Из этого даже дерево выражений не получишь, так как оно строится только для лямбды. Тебе придется писать что-то вроде:
(from o in orders where o.OrderDate < xxx select o).Update(() => new order { delayed = true });
Что выглядит еще более странно.
Если учесть, что иногда нужно использовать информацию из полей изменяемого объекта, то придется передавать его через параметр:
(from o in orders where o.OrderDate < xxx select o).Update(o => new order { delayed = !o.delayed });
У пользователей будет ощущение, что информация о других значений из той же таблицы теряется.
Нехорошо, как-то.