@DutchGhost*mut T is always safe as there's no assumotion safe code can make about raw ptrs... probably I am just not understanding the question

but if you used references I think that would be a sound function indeed

The question is whether that resulting *mut [MaybeUninit<u8>] is sound to use, especially if I originally called ptr_to_maybe_unint_slice with an &mut T.
Basically, is the T referenced by the mutable reference interpretable as a [MaybeUninit<u8>]

for raw ptrs, I guess you mean doing reads and writes inside the bounds of the slice, but that's far from given

maybe you mean also getting &mut MaybeUninit<u8> to slice elemtents and doing arbitrary safe things with them

and while all of these do not cause immediate UB, they can cause UB later... like, turn &mut Vec<i32> into *mut [MaybeUninit<u8>] and then fill this will all-0, now the original Vec ref points to something invalid

So summerized, in general, yes its okey to go from &mut T -> *mut [MaybeUninit<u8>], and use that raw slice, except it depends on the type of T what operations are considered 'sound' on that raw slice.