Ну это мне кажется больше от типа библиотеки и приложения зависит.
Т.е. как в расте - если это либо то возвращают ошибкой как раз энам, оборачивающий свои ошибки и ошибки зависимостей, сохраняя все типы. А если приложение или прям совсем прикладная либа, то там ошибкой будет какой-нибудь Box<dyn Error> и т.п.