From @eddyb and @Kimundi’s proposal: “People coming from other mainstream languages are usually familiar with type inheritance, which will make them overuse this feature in places where a trait-based design would be the better choice.”
I couldn’t agree more. Your average user will get more out of rust of inheritance is not easily available. Orthogonality with existing features should be the first priority, and ergonomics might even be considered a bad thing.
Also, there seems to be equal, if not more, interest in the performance characteristics of C++'s implementation of inheritance than the expressitivity gained from the language feature itself. This makes me thing the true solution is in fact some fancy system for existential types. Regardless, a proposals that doesn’t offer enough control over the runtime representation, may the miss the mark or even do more harm than good.
The more low-level proposals (@MicahChalmer’s, @eddyb and @Kimundi’s) gave us maximal control over the runtime representation, maximal orthogonality, and minimal ergonomics, and minimal change to the language, so I think they are a clear win. (They seem pretty reconcilable too.)