I will add to this since no one has responded.
I see the validation at the model level to be very base level validation. It cannot handle all the validation that the UI would need and I don't believe it should (or could) know enough to perform validation based on business or security logic. Any validation that occurs on the model should only be validation that can be applied across any use of that model which either means you don't reuse the model much (or any) or you have few validation points in your model.
Then when I add the fact that I don't like binding the V directing to the M even through an exposed property on the VM - so any validation raised on the M now has to be routed on up. This adds a little complexity but nothing to worry about. Then if the VM has a few of its own validations to perform you may need to manage the display of the various sources of the validation sent to the V.
I realize not everyone needs the complex validation that my apps do and for drag-n-drop simplicity it seems like (and is) a quick and easy solution but maybe I am over-thinking this or missing a piece of the puzzle.
The above is my opinion which is based on the apps I have personally developed.
Edited by midnit - 21-Mar-2011 at 4:01am