The status of detecting and avoiding integer overflow in Rust changed several times in the lead up to the 1.0.0 release last year. That fluid situation means there’s still quite a bit of confusion about exactly how overflow is handled and mitigated, and what the consequences are. So, I wrote a blog post to hopefully clarify!
The reason shrink-wrapping doesn't work the way you expect it to is https://llvm.org/bugs/show_bug.cgi?id=25614; the version of LLVM Rust is using definitely supports shrink-wrapping on x86.
And the Reddit thread:
Thanks, I corrected that inaccuracy.