При чем тут регулярное бросание исключений? Не надо додумывать :) просто странно, что вместо сотен тактов, она миллиона два проводит -- разница на порядки
Если ошибка возникает регулярно и предполагается, что ее сразу нужно обрабатывать лучше использовать аналог either или maybe.
Если ошибка возникает раз в 10 лет, я не вижу смысла захламлять (и замедлять) свой код проверками всего и вся. Для этого есть исключения. Для них естественно жертвовать скоростью обработки ошиби, потому что предполагается, что это будет происходить редко.
Единственный сильный довод против, который я слышал - это ИБ. Да, в нормальных условиях эта ошибка может быть чрезвычайно редкой, но если сервер тратит в 1000 раз больше ресурсов на обработку ошибки, это может использовать злоумышленник.