Why not inheritance?

You can go over bullets in the original post of the Efficient code reuse · Issue #349 · rust-lang/rfcs · GitHub and see.

Besides those that you already mentioned there no cheap downcasting and thin pointers.