Is my second statement true?
RemoteException is thrown for remote clients when the bean method throws a system exception.
No, usually an EJBException is thrown to the client (regardless it's remote or local) by the container (exception: a web service client receives a java.rmi.RemoteException).
It's a good idea to study the tables in core spec 14.3 for the various cases that can encounter.