Ok, I see and now I understand that by this you simple avoiding the race problem. Reale good point. But my concern with this is that in such case, like in example on the page. you are forced to split the logic of action between the action itself and model. I mentioned example validation of password, where action validate the password is not empty, but model validate it was used or not. Similar problem can occurs when we want to implement the transaction like flow, where we have sequence of few actions and fails of one of them should rollback effects of previous once, in such case model by self have to support such case, so have to have awareness about transaction.