What do you mean by demonstrate? If you do not want to fit the
mathematical presentation, then I have nothing to demonstrate, you have
your point of view, I have mine and they differ. Now, if you want to
I think the point is that Monad is not part of Haskell to satisfy mathematical (or categorical) purity, but to solve a particular set of problems. Those problems are best addressed with bind, and join works rather less well for them. Since one of those problems involves interfacing with the world outside of the program, an inefficient but categorically/mathematically more "pure" solution may not be a viable option in practice.
Alternative Preludes which focus on other purposes are a dime a dozen; if you want a categorically pure Monad, nothing stops you from writing one and using it.
--