Исключения нужны для индикации непредвиденных ситуаций. Хочешь обрабатывать ошибки - возвращай их, а не кидай.
В этом плане исключения в шарпе - это как непроверяемые исключения в жаве, или паники из го/раста
Кстати, по сути Result это прямой аналог checked exceptions