On your second point, separate deployment jars, try the tips in the following discussion...
http://www.jboss.org/modules/bb/index.html?module=bb&op=viewtopic&t=forums/ for your first point, the need to perform lookups, I think that this is a necessary part of working with EJB's. EJB's conform to a contract between the container and the bean that specifies that lookups and remote invocation are the proper route to bean access. The container than adds security, transactions, resource access etc on top to reduce the time it takes to create enterprise applications. You could replace the beans with standard java objects, but you loose the services provided by the container.
If anyone disagrees with my interpretation, please jump in.