Вам не нужны bool и Option start_job(path, true, false) — вполне нормальный вызов функции. Только что означают эти два флага? Обновить кеш? Отправить уведомление? Чтобы разобраться, придётся идти в определение функции. А если поменять аргументы местами, компилятор даже не пожалуется. С состояниями бывает ещё веселее. Два bool дают четыре комбинации, хотя программе могут быть нужны только три. И вот уже код допускает ситуацию, когда обработка файла одновременно завершилась успехом и ошибкой. А None при оформлении заказа означает самовывоз или доставку на сохранённый адрес? И всё это приходится расшифровывать, даже когда код уже написал ИИ-болванчик, happy path работает и задачу вроде бы можно закрывать.