Если вы можете гарантировать, что жизненный цикл будет таким, как вы описали, то, очевидно, что несинхронизированный HashMap должен быть в порядке. Однако мой инстинкт заключается в том, что это создает хрупкую зависимость от вашего текущего шаблона развертывания.
Если вы используете синхронизированную структуру данных, то вы знаете, безопасно сейчас и в будущем. Если у вас нет конкретных доказательств того, что синхронизация действительно влияет на производительность, я бы выбрал «очевидно правильную» реализацию.
Между прочим, несколько ведущих серверов приложений фактически кэшируют результаты поиска JNDI, поэтому неясно, сколько фактически дает сохранение шаблона, который вы используете - хотя я должен признать, что склонен использовать его сам.
Сами ссылки EJB могут быть повторно использованы, так что частота посещений дома может быть довольно низкой. Если целью является экстремальная производительность, это может быть дальнейшим путем для изучения.