Но я не смог найти причину / мотив такой невозможности, почему они изолированы от веб-уровня?
Традиционно это было сделано для обеспечения разделения между бизнес-логикой и представлением связанного кода. Смешивать это - то, что делает большинство новичков, и это всегда приводит к системам, которые трудно поддерживать в долгосрочной перспективе.
Допуская непосредственное использование EJB-компонентов в качестве вспомогательных компонентов, люди будут помещать в них FacesMessages и средства форматирования, характерные для одной конкретной страницы, а также визуализировать код и т. Д.
Строгая изоляция предотвращает эти ошибки. Тем не менее, это также поднимает планку для тех же самых начинающих, чтобы начать работу с EJB, и придает EJB репутацию довольно сложной задачи (хотя с EJB3 это не совсем так). В последнем выпуске Java EE 6 стало возможным много смешивания, позволяющего определять EJB без интерфейсов в веб-модуле. С аннотациями CDI они могут непосредственно использоваться в качестве вспомогательных компонентов.
В зависимости от вашего представления, это шаг вперед (проще, меньше ограничений, меньше необходимых артефактов), но его также можно рассматривать как шаг назад (снова способствует смешиванию представления и бизнес-логики, что осуждает скриптлеты в JSP пытался помешать).