How do you handle proxy to proxy communications?
I consider my data model to be entwined with itself, meaning I handle proxy-to-proxy communications directly. I have no problems calling an instance of another proxy in my applications data model from any other proxy in the same model.
In terms of how many proxies an application might need... well, that depends on the granularity you want/need to achieve for your purposes. There is no set limit outside of the obvious limit placed on the platform and system resources. For some portions of my model I will store a collection of objects in an ObjectListProxy, with all of the VOs proxied there and only there. Other times, I want a finer grain to my control so I will create the ObjectListProxy as well as creating individual ObjectProxy objects for each of my unique Objects.
You don't need to have a command between your proxy communications, but you certainly can. It is perfectly acceptable to initialize and activate a command from within a Proxy.