Rust has a small standard library (and that's ok)
blog.nindalf.com
blog.nindalf.com
I don't think there is any language that people use that doesn't have this issue. C++ for example has a huge number of warts. Ideally like with std::auto_ptr they are deprecated and removed over time.
However, in hindsight it was the right call to not add some libraries to Rust's standard library. In some cases, they turned out to be dead ends (rustc_serialize) or needed a lot more time to bake (rand).
I feel like the main advantage of a large standard library is already vetted reasonable default code. When using python I don't need to read through a billion blog posts and forums to find a good json library. There is a decent one already in the standard library and it basically works. If I need a better one, then I would want to go searching. I think having a sensible default out of the box helps more than it hurts. For the compile times, why would cargo make you pay for what you don't use?
Your point is valid in general though. If it's a more niche problem, finding the right library might not be obvious and users might give up.
If you have one or more dependencies that also need to parse JSON, and they choose differently, you could have cargo building multiple JSON libraries and including parts of them in your application, which would increase the bloat of the resulting binary.
This is of course a problem with any language and not Rust specific, but in an ideal world there would be one best way for doing most things included in the standard library and everyone would just use those.
But your point stands - in an ideal world it would be nice if there was one obvious way to do it, and that obvious way was in the standard library.
Then why not put it in the standard library?
If it is mature enough, then why not add it so anyone can use it without having to dowload it everytime? So that new users to Rust are not forced to search through all the possible candidates to find the best answer?
If it is not ready, sure wait until it is or use something better.
In the industry I work in, software needs to be mature, stable, and boring. I would love to start using Rust at work, but it is not ready in terms of maturity and stability because of reasons like these.
Rust needs a standard.
Rust needs multiple mature implementations.
Rust needs a standard library that covers enough "everyday" use cases that you don't have to download half of crates.io to accomplish everyday tasks
Perhaps it will be ready in 10 to 15 years.
Until then, we will keep building things in C and C++.
Also consider that PHP, which has an astonishingly huge stdlib, still has native classes that handle SOAP requests that must be maintained for backwards compatibility.