Это еще один пример того, что pointers are complicated.
Вопрос не в этом, вопрос в том, сколько правок нужно внести в С++ компилятор и рантайм, чтобы всё заработало как в Rust. И если ты задумаешься над этим вопросом, ты узнаешь, что ответ - очень мало, но они не внесены