Having used WPF for a while, the flexibility in most things is very good
The flexibility that you can do commands as per out of the box method, or using something more strictly command design patterns means that you can decide to go either way on any given project.
What I have I done?
I have recently tended to use the out of the box approach, as for me that’s normally all i want.
If I need undo/redo and/or logging I can derive a class from RoutedUICommand and use that, so I get the best of all worlds.
Just to make it all dizzy, you can also define your own commands by implementing ICommand, but I’ll leave that for another day