It is perhaps too verbose by default, as indicated by popularity of thiserror and anyhow crates.
A myriad of experimental prototypes (like the failure crate and its descendants) have been made, experimented with and then retired and looks like the progress is converging to these two complementary error handling crates (anyhow, thiserror, and a few mostly-compatible variants like eyre), and work going on to standardize some aspects of it so (parts of) these crates can be retired. There's also core::error that's bringing this to no-std environments.
So yeah, it definitely was not great on day 1 and there's been a lot of churn on error handling but it is going in the right direction.
There is disadvantages for going "catch all" libraries as then you can't be sure you are catching all errors.