I was recently thinking that having From<T> impls for both String and &str (as well perhaps as Path and PathBuf, and maybe even OsStr/OsString) would be useful in improving ergonomics.
It happens way too often that I e.g. need a String but only have a &str and so need to call my_str.to_string() explicitly.
While not a major thing, it is annoying to have to do again and again.
Next to the above, atm String only implements FromStr which sort of seems to have the same purpose as From, except having From for it would be strictly better as the API would be identical to any other From, rather than having some weird special case conversion trait.
BTW:
I realize that Rust has a philosophy of making all allocations explicit, but that guarantee went out the window as soon as From impls started appearing in 3rd party libs.
I also realize FromStr won’t be removed as it’s marked as stable, but deprecation in favor of a From impl for String doesn’t seem like a weird move to me. Of course, there may be factors at play I’m not familiar with 