Ссылка на класс NSProxy говорит следующее:
Как правило, сообщение прокси пересылается реальному объекту или заставляет прокси загружать (или преобразовывать себя) в реальный объект.
Как именно будет работать "преобразование себя в реальный объект"?
Чтобы сделать вещи более конкретными, предположим, что класс Foo имеет метод newFooWithString:, который берет строку и возвращает новый экземпляр Foo. Можно ли настроить NSProxy, который находится вокруг, и если получено сообщение pleaseBecomeAFooUsingString: @"bar", преобразуется в [Foo newFooWithString: @"bar"], занимая одну и ту же память, не вмешиваясь в другие ссылки на себя, которые могут существовать?