* In terms of efficiency: I believe that if people are on the hunt for efficiency on CPUs at the top-end of x86, they shall use distros that target Pentium 4 explicitly. There are a few of them out there, now. Archlinux32 for example carries packages for i486, i686 and Pentium 4 where possible, and lets you enable the architectures that suit you best.
* In terms of confusion: I think using the Rust i586 toolchain, and building for i586 with Rust might be less confusing, because altering the i686 definitions for rustc will make it act differently compared to other platforms. People could compile code for i686 on Debian, get working code, but then if someone else does the same on another distro, the produced binary would not work on the same devices. Although, I think changing the i686 definition down, like you did, is the most accurate way to achieve the goal, and is what I personally think should be mainline. If the accurate definition proves itself on Debian, it might find itself in mainline Rust, too, which would be awesome. Thank you for your continued interest in this topic.