Please correct me if I am wrong, but all the examples you cite are about hiding mutable state using monads.
1. Non deterministic computation -> remembering last value of m and n. I assume you are talikng pseudo random generators here.
2. error handling with Maybe -> remembering last value or Nothing. Almost like passing along a single error code variable.
3. continuations -> Remember what state your computation variable and PC were last at.
If I am seeing this wrong, then I will be happy to take a second look at monads :)