> The problem with the implementation being discussed is that the proxy is responsible for modifying the object which uses it, which is just bizarre.

I've removed it.

> If we can instead move the responsibility to a third party (like a function), or the delegator itself (in a category), that'd be more appealing.

It's now back to the delegators themselves, each has its own static function. It's not idea, but it's not a problem at this point.