Re: Why?
While it's true that Rust has no inheritance, there are traits and supertraits that allow polymorphic behaviour.
This was apparently an early design decision to avoid the classic C++ diamond inheritance problem, but I've not used the language enough to understand if the same problem exists in a different way through traits.
So far I've not seen anything in Rust that couldn't be achieved in C++, the difference is that a C++ programmer would need the right disciplines to create Rust-like behaviour (not enforced by a compiler) whereas Rust forces the coder to follow the regime.
Will it turn out to be the next "fad" language? I remember learning (and loving) Ruby, though that didn't live up to its promises in the way that Rust has - so far. We will have to wait and see.