it does not seem to be able to handle nested calls
What behavior do you see?
Is this a callback interface or an endpoint reference? Since HTTP invoker sends serialized objects (not the objects themselves) you can't really invoke a method on a remote object (passed as a parameter to an HTTPInvoker call).
You might be experiencing deadlock because HTTP is a synchronous (request/response) protocol, especially if your A object has synchronized methods.
Code:
A --- request(serialize(interface to A)) ----> B
+ wait for reponse....
<---- request ---------------------- +
wait for reponse....