There is a loophole in the reconnect mechanism.
When the ReconnectHandler has done its job of establishing a remoting connection and has deregistered itself and registered the RemotingConnectionEJBReceiver, the latter tries to make a Version handshake with a timeout of 5 seconds (in 1.0.5.Final, configurable in the current master).
If this handshake times out, the RemotingConnectionEJBReceiver unregisters itself from the EJBClientContext, without registering its ReconnectHandler to try at a later time, when the remote-ejb-host might not be so busy, and react faster. So the EJBClientContext is left without RemotingConnectionEJBReceiver and without a reconnect handler.