C++ certainly isn't that special. It's a pain to implement, but so is Rust.
This argument can be pushed all the way down to build your own CPUs from sand, get to build the first hexdump monitor with electric switches, followed by writting the first Assembler in hexdump, and only then the first compiler for one of thoses languages in Assembly, and finally you get C.
Bootstrapping Rust would involve the same steps, only at some point you've got to write a Rust compiler in assembly, or write a C compiler in assembly that can compile mrustc, which probably means writing another C compiler in C so you can easily add all the needed features.
Or even better, lets follow the hype, use bootstrap strategies from the 1960's, and use WebAssembly instead, like many bytecode based compilers on those days, having written a macro Assembler instead, thus mapping the bytecodes into macros for the specific home made CPU.