Если у вас вместо туплов с ошибками/успехом появляются исключения, то вы заворачиваете свои операции в try...catch и если вылетает ошибка, то она либо вылетает выше, что уже довольно неявно, либо падает куда-то вниз, где у вас обработка исключения
Да, я думал об этом аргументе, но по сути применяя with происходит тоже самое, ну кроме неявной передаче наверх