I think it would be convenient if the meaning of rustc triples was consistent with that of Clang or with the GNU one as much as possible. In any case, our choices (and their rationale) should be documented, in order to avoid to guide future choices when adding architectures and targets and to check whether the past ones are consistent.
Some inconsistencies with Clang were found here
and a possible way forward is here
https://github.com/rust-lang/rust/pull/31632
but these PRs only try to improve the current state of the i686 triples. Instead AFAICT there has been no discussion so far on tackling the higher level problem of providing a policy to determine what each triple should be. It might be desirable to consider the integration with toolchains and build systems, as well as the conventions established by other compilers.