The logic in ensureMethodsCache makes certain assumptions about the layout of the methods in the meta-object, and the start index.
It is unclear whether those truly hold, especially when both public and private methods exist in the overload set.
We should investigate it, and
- either fix the existing logic
- or, if it is correct, add more internal documentation on how it works