Скорее даже если использовать fluent interface (вызов bind через точку), то это неполноценный bind. Он умеет меньше, чем настоящий, с лямбдами и вложением. Через настоящий bind с лямбдами и вложением можно выразить те же случаи, которые выражаются через fluent interface, но не наоборот.
Я в полный рост эту проблему осознал, когда делал монады на C++ (STM, Parser, Maybe). Если у тебя есть правильный bind с типом как в Haskell
bind :: m a -> (a -> m b) -> m b
То всё остальное делается из него: fmap, ap, всякие sequence, mapM и прочее. Но если у тебя есть только fluent interface, то многих этих функций, в общем их виде, ты выразить не можешь