In the event you're as desperate for those last dregs of performance as the author of the "Why not rust?" article, (and let's assume you actually measured your performance problem before jumping to the step where you make everything more complicated and more buggy for no good reason?) you can even Box::try_new_uninit_in() and unsafely do all the initialization in place as needed yourself as you might do by default in C++.
Now, I don't know when Allocators will be stabilized, the Working Group has been making steady progress for some years now but this is a tricky business, witness the many languages that get it quite badly wrong...
I gather there has been some effort to get Rust library components aware of such things. Handling exhaustion in them is an interesting research topic.
"nobody"
~/chromium (main)$ rg --stats -t cpp "[=\(][ ]*new "
...
17639 matches
17536 matched lines
7162 files contained matches
96561 files searched
1539692 bytes printed
763109193 bytes searched
1.119265 seconds spent searching
1.428974 seconds
That's surely a lot of non-usage. Maybe it's just Chrome, though? ~/llvm-project (main)$ rg --stats -t cpp "[=\(][ ]*new "
...
7447 matches
7394 matched lines
2245 files contained matches
35148 files searched
541938 bytes printed
385115019 bytes searched
0.425689 seconds spent searching
0.485431 seconds
Hmmmm.