Yeah, but, the problem is syncing the data. That is always the hard part. One way I look at it is, something like between SQL and OO programming. Because SQL takes care of the data locked automatically, and SQL itself is parralle. Not sure, if there is way to bring that to OO style.
I'm not completely convinced that object orientation is the only way forward. Speaking SQL for a moment, if you were to look at tables as types and were able to pass them around like variables, you could enable a class of staticly typed solutions for problems that would otherwise require all kinds of dynamic muck or schema diarrhea.
For linq, I am still trying to wrap my mind around this idea that grouping and aggregation do not need to be coupled. Erik was talking about this in one of his posts.