How is this different from decorating the interface?
It returns a new implementation of the interface that is not related to the delegated implementation, i.e. doesn't expose methods outside the interface. It's also coupled via method name in strings, so unless there's another benefit, revert back to the previos proxy as a decorator interface