Linqを使えばデータアクセス層は不要?

Linq to SQLの技術は間違いなくデータアクセス層(DAL)の実装に影響を与えることになるでしょう。Linqが提供する機能を利用すれば多くのデータアクセスをSQL文なしで実装可能なようにも思えてきます。さらに、ビジネス層からの直接データ検索・更新するシナリオも十分考えられため、DALが不要ではないかとさえ思えてきます。単にSQL文をラップしているだけのDALであれば、特にそう思えるのではないでしょうか。
しかし、このシナリオは必ずしも上手くいかないのではないかと思っています。SQLの遅延実行の問題(Linqは実際のデータアクセスした段階で実際のSQL処理を実行する)など細かな問題もありますが、最大の問題はビジネス層にSQL処理を持ち込むことによって複雑さが増すことの弊害が大きいと考えています。本来DALやデータマッパーが行っていた役割や抽象化をビジネス層で取り扱わなければならないということです。たとえば複雑なデータ構造の順序を意識した読み書きなどがあります。
あと、ビジネス層(ドメインモデル)が問題領域(ドメイン)以外の要素で複雑になるのはやっぱりいやです。
ということで、Linq to SQLはデータアクセスレベルで利用、あとデータ変換としてObject Linqを利用する方向かなと考えています。