The first line reads "returns an mproc that accepts zero or more arguments..." but in the next paragraph it says as if it takes one Maybe or Either argument.

The reference implementation does return a procedure that takes one Maybe/Either argument (which is not mproc).

In other words, if I borrow Haskell notation (I only show 2 mproc cases):

The first line says:

maybe-compose :: (a* -> Maybe b*) -> (b* -> Maybe c*) -> (a* -> Maybe c*)

The second paragraph and reference implementation assumes:

maybe-compose :: (a* -> Maybe b*) -> (b* -> Maybe c*) -> (Maybe a* -> Maybe c*)