Correct me if I'm wrong but calling $self->SUPER::somesub calls a sub in the
functional context which will not pass the "calling class" along with it.
Okay, you're wrong. :)
'SUPER::' is just a hint to the method dispatcher to move on to the next most likely method. It's a method call, so it passes on the invocant, be that class name or object.
-- c