Variation in behavior between directly calling a method and using method('name').call ?

Given this example code:

(highly simplified from the real code, which involves ActiveSupport::Rescuable and some other magic)

Why does the second call (which is essentially what Rescuable does in 2.3) fail? Adding a 'def foo; super; end' to class B makes it work, but I can't figure out why that's needed for only one of the two forms.

Any help is appreciated.

--Matt Jones