After further review - it seems to me that this is __only__ a problem with interceptors that perform retry - I don't think we want to add the overhead of cloning the MethodInvocation for the other interceptors (expression evaluating etc).

So, I think we need another method on ExecutionCallback - I think it's safe to do that, even in 2.1 because it's an "internal" interface so it's not a "breaking change".

    Object cloneAndExecute() throws Exception;

WDYT?