There's no problem at all with a proxy registering, retrieving or removing another Proxy. Think of it this way: what if you had an app that runs on desktop, mobile and browser, all using the same model, but applyong different use cases against it according to the form factor and capabilities unique to each of those platforms? You'd want a highly portable, internally consistent set of model classes (proxies) that take care of themselves and do not rely on the app to keep them consistent. You'd package them in a library used by all three apps and manage them as a separate project. So they'd need to be able to interact with each other in this way.