Correct. std is not a dumping ground for features that are not fundamental to using Rust. Hence why the available collections are sparse, and why there’s a TCP socket but no HTTP server (unlike, say, the Java std). New functionality is added by RFC, because everyone (except for #![no_std] crates and the embedded people) links std.
Not all libs are “random libs”. Quite a few crates, which include things more languages have as part of their std, are controlled directly by Rust itself (see rand, regex, num, and the pseudonymous lazy-static). The only reason they’re out-of-tree is because they are not tied to Rust’s six-week release schedule. These crates make similar breakage guarantees though, by way of “an almost fanatical devotion to” semver, which is the Rust way.
Mind, I believe that things like random number generation, a regex engine, and a math library do not belong in std. Rust is not batteries included. lazy-static, however, is such a simple and widely-used feature that an argument can be made for putting it in std. Hence the bikes we are presently shedding.