Thank you for looking into doing this! This should be a natural fit with the existing key path implementation.
I don't think method descriptors are ever necessary. Unlike properties, there is no way to hide implementation details of a method aside from hiding or showing the method as a whole (for instance, a property can be outwardly get
-only but have a private setter, and the descriptor is necessary for key path equivalence to instantiate the keypath with the right setter; but a method is inherently always get-only).
One thing I would ask is whether we need to support both unapplied and applied methods. Applied methods are straightforward to support internally as a form of get-only subscript keypath component. Although unapplied key path components could be modeled like a get-only property access, their representation would necessitate the need to represent application independently as a separate key path component. If most key path method references are fully-applied, and there is no need for unapplied references, the extra application step could lead to a less efficient representation.