Certes, il y a les annotation, les entités etc., les conteneurs, mais au final on peut très bien enregistrer un objet en session et le faire évoluer, le retrouver etc..
On peut aussi faire une application web juste avec des Servlets...
A mon avis, les EJB prennent tout leur intérêt sur une grosse infrastructure distribuée, ou tu auras une séparation des traitements sur différentes machines, avec une répartition de la charge (Cluster en gros).
OU
Dans un environnement SOA, ou plusieurs applications nécessitent les mêmes services.
Et souvent c'est les deux en même temps.
Petit schéma piqué sur le web :
Partager