EJB is not only for persistence. The EJB container offers a number of services including life cycle management, security, transactions, distribution, etc. (see J2EE tutorial).
Whether
you should use EJB or not depends on whether you need these services or not. If you need a significant number of these services, then you should consider using EJB. Why? Because you need either to use another framework or implement the services yourself (which is very time-consuming). In contrast, if you don't need these services then EJB might be overkill for your application. In conclusion this is a trade-off between performance cost and features. But bear in mind that most entreprise applications need most or all of these services. Also, there are several EJB best practices and optimizations that significantly reduce the performance cost.
Bruno Collet<br /><a href="http://www.practicalsoftwarearchitect.com" target="_blank" rel="nofollow">www.practicalsoftwarearchitect.com</a><br />- The Paradox of Software Architecture: It is easy to make a complex architecture, but it is difficult to make a simple architecture.