We already have it with [target.'cfg(windows)'.dependencies]. (docs) But as this feature was introduced only in 1.8 you can quite often see crates which do not use it, either crate is old and no more supported or developer simply does not know about such feature.
My proposal exactly is about addition of such “hints” to the manifest format and they of course will be optional.
Regarding enforcement by cargo I disagree on this, in my opinion if we have reliable information about crate we should use to reduce risk of potential mistakes and make explicit platform specific subtrees of crates infrastructure.
Such validation will not introduce any backward compatibility issues. Because if some crate does not specify any target attributes cargo will not set any restrictions on its users.
Well, cargo can simply require to use #![no_std]if no_std target was enabled in Cargo.toml and everything else will be done by existing tools.