I guess we may be talking at cross purposes here - idiomatic usages of the pin macros don't really mean you need to understand whats going on here (beyond "async futures need to be pinned in order to repeatedly mutate them").
If you need to produce a type that interacts with Pin, it's a whole other level of hell.