No, because Pin doesn't require you to not forget the value.
Trivially:
let b = Box::pin(value);
mem::forget(b);
What Pin specifically requires is that the destructor is called before the location is made invalid. If you just leak the value, then the location is never made invalid, and so it's not invalidating the pin.
(Because of async fn, this even applies to stack values in macros; you only get the pinning guarantees.)
I was thinking something like you can't Box::pin(value) because value is not movable.
But turns out my understanding of pin was wrong. It doesn't really allow creation of immovable types, only pointers to such.