Even though its the same Network Interface, you are making a call between two VMs. Running it in the same VM(like a servlet calling the EJB) maybe faster but I think the numbers might just be what you might get. For all this, JBoss uses Dynamic Proxies, instead of Stubs and Skeletons, so your invocation stack is one level of method calls less than what you have with a stub and skeleton.
Actually, it's not as bad as I'd presented in my prior post. Only the first call (which I'm assuming triggers the bean construction step) takes unusually long to complete. Once the stub has been acquired and at least one call made, it's actually very fast. Obviosuly, that warrants some design changes, such as: using statful beans or maybe even caching the stubs of the stateless onces on the client side for the duration ofa session.