I made a 1000 loop test on local bean and RMI bean invokation:
testRMIAccountService:7731ms (normal object rmi service with RmiInvocationWrapper)
testRMIAccountServiceR:1332ms (normal rmi service with Remote interface)
R means java.rmi.Remote interface.
it seemed that remoting invoke made great cost. so i think springframework should detect that whether the remoting service is located in same jvm, if true, local bean was derectly returned, else remote bean was returned.