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.
I mean, in practice Rc is the one I run into the least, but pin only comes up occasionally, yes. Maybe once or twice a year on one of my projects.