Haskell : モナド

http://www.sampou.org/haskell/a-a-monads/html/readermonad.html
Readerモナドって何がうれしいのかよくわからないな。例を見ても、引数で値を直接渡せばいいのに、なんでわざわざモナドにするのだろう?
モナドが局面によっては便利なのはよく分かるのだけれど、なんでもかんでもモナドにすればよいってわけではないのではないかな。感覚的には、モナドメタプログラミングに似ていて、ぴったりはまるとすごく格好いいのだけれど、やたらめったら使うとわけのわからないものになってしまうという感じがする。
関数プログラミングのメリットって、「分かりやすい」ことのはずだよね。だから素直に書けばいいわけで、玄人っぽいテクニックに走るのは間違っているのじゃないかな。