There are a few other things you can do with a raw pointer to a DST. You can compare or hash raw pointers, so you can determine if two of them point to the same memory, or use them as keys in a HashSet or BTreeSet where uniqueness is determined by address equality. (Yes, you could do this for slices by converting to a (*mut T, usize) pair, but using raw pointers allows libraries like by_address to have a single generic implementation that works for all types, sized and unsized.)
Cast to *mut T and do the usual C pointer shenanigans. This cast is UB, since the layout of a ptr-to-slice is unspecified.
The layout of *mut [T] is undefined, but the cast from *mut [T] to *mut T is, I believe, well-defined to discard the unsize info and return just the address (i.e., a pointer to the start of the slice). However, this doesn’t seem to be properly documented. RFC 401 only notes that such casts are valid, but not precisely what they do.