Raise... が中でイベント呼んでる = 変化を通知してるだけ。
その先 CanExecute が呼ばれてるかどうかとか知ったこっちゃない。
そこから先はドキュメント読むしかない。

http://msdn.microsoft.com/ja-jp/library/ms752308.aspx
ここ見ると、
「、CanExecuteChanged イベントにサブスクライブし、CanExecute が false を返す場合に無効にし」
って書かれてて、
この文章読んで初めて挙動分かる。