Your opening question is well answered, I believe, but I don't see any response to
I'm also curious if descriptors play a role here.
Technically, descriptors do play a role here, since all methods are implemented implicitly with a descriptor, but there are no clear explicit descriptors being used, and they have nothing to do with the behavior you're questioning.