>>698
デコレータは関数を関数に変換するもの(最近はクラスもできるが)。

self必須にすることで関数とメソッドはほぼ互換になる
>foo.meth(arg) == C.meth(foo, arg)
ここで、C.methは関数扱いできる。

メソッドが関数として扱えるので、
メソッドのデコレータは関数のデコレータを作るのと同じやり方でできる。

逆にself省略できるようにしたらメソッドのデコレータを作るのが難しくなると思う。