One thing i've noticed with const constructors (where there are already some in stable), is that ptr equality can lead to some awkward behaviors, such as the following assertions. This won't impact existing comparisons, I.e. using static or local bindings these compare as you would expect, but we're potentially introducing new weird const pointer comparisons.
use std::mem::MaybeUninit;
const C1: MaybeUninit<bool> = MaybeUninit::<bool>::uninit();
const C2: MaybeUninit<bool> = MaybeUninit::<bool>::uninit();
const CT: MaybeUninit<bool> = MaybeUninit::new(true);
const CT2: MaybeUninit<bool> = MaybeUninit::new(true);
const CF: MaybeUninit<bool> = MaybeUninit::new(false);
fn main() {
assert!(std::ptr::eq(C1.as_ptr(), C2.as_ptr()));
assert!(std::ptr::eq(CT.as_ptr(), CT2.as_ptr()));
// This one is especially peculiar.
assert!(std::ptr::eq(C1.as_ptr(), CF.as_ptr()));
}