General purpose delegation has to be so general-purpose that it's hard
to see that *any* (virtual) hardware support is feasible.
As you pointed out, the scary delegation capabilities of Class::Delegation
would seem to defy low-level support, because they require too many
high-level decisions to be made before a method can be delegated.
It's probably enough to be able to rejig the dispatch table at run-time,
so as to install a method implementation that retargets a method invocation
to a different method of a different invocant. That is, the low-level
equivalent of:
MyClass.dispatch_table{some_method} =
sub { shift.{attr}.other_method(@_) }
About the only other support that would be useful would be a third dispatch
phase (between named method look-up and AUTOLOAD/AUTOVIVIFY/AUTOWHATEVER)
specifically for delegation checks.
But that isn't a (virtual) hardware issue as far as I can tell.
Damian