Update: It is possible to abuse existing CoerceUnsized implementations on stable. See #85099 (although I created that issue before reading any of this issue and its IRLO thread, so don’t expect any syntactic similarity to the unsoundness examples of this issue).
The type Pin implements Deref but it doesn’t implement DerefMut. The types Pin and & are #[fundamental] so that an impl DerefMut for Pin> is possible. You can use LocalType == SomeLocalStruct or LocalType == dyn LocalTrait and you can coerce Pin> into Pin>. (Indeed, two layers of Pin!!) This allows creating a pair of “smart pointers that implement CoerceUnsized but have strange behavior” on stable (Pin and Pin become the smart pointers with “strange behavior” and they already implement CoerceUnsized).
More concretely: Since Pin: Deref, a “strange behavior” DerefMut implementation of Pin can be used to dereference an underlying Pin into, effectively, a target type (wrapped in the trait object) that’s different from SomeLocalStruct. The struct SomeLocalStruct might always be Unpin while the different type behind the &mut dyn LocalTrait returned by DerefMut can be !Unpin. Having SomeLocalStruct: Unpin allows for easy creation of the Pin> which coerces into Pin> even though Pin::Target: !Unpin (and even the actual Target type inside of the trait object being returned by the DerefMut can be !Unpin).
Methods on LocalTrait can be used both to make the DerefMut implementation possible and to convert the Pin (from a Pin::as_mut call on &mut Pin>) back into a pinned mutable referene to the concrete “type behind the &mut dyn LocalTrait returned by DerefMut”.
From: https://github.com/rust-lang/rust/issues/68015#issuecomment-835786438
Where's that elegance now? I still maintain that I'd rather use Go when the problem domain allows for it (e.g. can use a garbage collector, don't need fast interoperability with C, don't need maximum performance.)