As with the field calls, the first two variants return information for public methods that can be accessed through the class — even those inherited from an ancestor class.
This is because B is not in the classpath of the system class loader or its parent or ancestor class loaders.
My own module performs a relatively simple deduction of relevant ancestor classes to dispatch, in contrast to PyProtocols' determination of adaptation paths.