Maybe монада тогда завершает цепочку вычислений с результатом Nothing. В вызывающем коде ты должен 1 раз проверить: успех ли у всей цепочки (Just value), или неуспех (Nothing). Не нужно делать эти проверки внутри цепочки (привет, го!), хотя и можно.
Допустим. Чем это отличается от исключений (концептуально, речь не про накладные расходы)? Просто рассчитываем, что все хорошо, а если что-то не хорошо - бросаем исключение. Точка проверки одна.