It's only there now for backwards compatibility. It's not
Not always. I have an example, where a method creates a closure that calls super, requiring the class/self pair as there isn't enough context for parameterless super. (And also in __new__??? I seem to recall running into that.)
class B:
def method(self):
...
class C(B):
def method(self):
def closure():
# super(C, self).method() # This will fix it...
super().method()
# Unbound, but no context for class or self.
return closure
>>> C().method()()
RuntimeError: super(): no arguments