Есть ошибки, которые нужно обрабатывать и тогда таких проблем не возникает по определению. Программерские ошибки нет смысла обрабатывать, надо фиксить. Так что зависит от того, как сделаешь.
Мне тяжело представить, где нужен ask, кроме границы между пользователем и сервисом, допускаю, что такие кейсы существуют. Получит пользователь ошибку с таймаутом или другую ошибку "что-то пошло не так" - ему все равно, запрос не выполнился. В остальных случаях можно и без ask жить. К слову, в акторах можно настроить supervision strategy и сделать так, чтобы у тебя не вся система сложилась из-за ошибки, а только один актор, например, обрабатывающий запросы пользователя.
Вы описали очень узкий случай. Пользователи (люди) тут вообще не при чем. Помимо людей есть взаимодействия межсервисные, межкомпонентные, межакторные. И то, что вы можете описать в виде комбинаторов .mapError, .retry, .timeout, .ensuring и т.п. на акторах делать прям боль. И подобное нужно много где. А супервизоры вообще ортогональны этому. Супервизорами вы оперируете в разрезе предок-потомок, а не вызывающий-вызываемый.