In this case, may be execution service methods can return TargetedFuture that extends Future, but also can return an address of where it's to be executed.
This way the caller can now which of the nodes failed execution, when executing remotely.
If controlling the failures is what you're after, you might want to take a look at the DistributedTaskFailoverPolicy (Infinispan Distribution 5.2.8.CR1 API)
Not really after controlling the failures.
More like I need to ask all the nodes a question, and know which node's answering what (or not answering, which I called a "failure").
I can submit to nodes individually, associating addresses with futures, and/or can ask the nodes to return their address in the response.
I think it's reasonable all together to associate futures to the addresses where they have been executed.
You make a good point. As a workaround you can add Address of the execution node to the result object you return from Callable. But you are right, I can see this is something other users might need as well. Let us consult about this, we'll keep you updated.