Jenže když to napíšete podle specifikace EJB, Servlet, JPA a pak se to pokusíte spustit pod frameworkem, který z Java EE používá akorát JPA, zjistíte, že tam nemáte ani žádný server, protože ten framework ho má integrovaný. A i kdybyste to jen obalil tím frameworkem, pořád vám bude chybět EJB a Servlety.
Navíc jenom podle specifikace se to psalo málokdy, protože jste obvykle věděl, v jakém prostředí to poběží, takže se využily možnosti toho prostředí. Takže to třeba nebylo čisté JPA, ale Hibernate.