One issue with NLB and remoting is the fact that remoting clients cache sockets connections for performance reasons. The side effect of this is that in the NLB case subsequent calls from the same client go to the same server introducing server affinity. But separate clients should still work with NLB and should be routed to different servers. As would be expected only SingleCall and stateless Singleton objects are supported. CAO case will fail with NLB since it requires server affinity to maintain state.
In v2.0 the TCP client-side socket cache is more flexible such that the cache timeout is configurable for more control in the load balancing case. So if per call load balancing is desired the timeout can be set to 0 meaning that each call will open a new socket.