Well, ICE is sort of simplified CORBA, where you still have to write idl, create object adapters and write your own implementations of interfaces, etc. Zircomp doesn't require any of this. To put it simply it provides you a tool for making your synchronous calls asynchronous and then offers a "commodity" server that would run any such call/function. "Commodity" - because you do not have to modify it at all. The only coding is on client side. You have to supply your original (to be distributed) function in the library and provide an xml description of function parameters library/headers location. Note that the library source code itself is also not necessary. Such xml description is supplied to a builder that produces another library to be linked now with a client. It contains function with the same arguments as the original one, but that you now use in your code. And this function takes care of detecting available servers, load balancing, data caching, routing and recovery of lost network/engines. Replies come to the application via barrier synchronization or callback. Note, that the same functionality could be configured to execute locally, by co-location, no code change required. In this case multi-thread/core usage would benefit from absence of copy or marshalling.
And finally, there is no GPL license, this is commercial product.