Borrowing model that is not compatible with 'composition in the large'.
Example: With a garbage collector a library doesn't need to worry about whether or not the application still needs some memory and the application doesn't need to worry if the library still needs it. This global concern gets handled at a global level.
Rust turns this global concern into a local concern, you can make up a discipline for borrowing which works for some libraries and application some of time but can't make one that works for all of them all of the time.
Too many features are added and seeing proposal like [0] don't make me confident about its future. Is it a general purpose programming language, or is it a research project?
https://news.ycombinator.com/item?id=27143833
And here:
https://news.ycombinator.com/item?id=32449823
Those are my personal takes, and should really be disregarded since I don't develop in Rust anymore.