The problem with the implementation being discussed is that the proxy is responsible for modifying the object which uses it, which is just bizarre.

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.