Это позволяет настраивать ресурсы вне кода. До JNDI мы использовали файлы конфигурации и все там было. С JNDI разработчикам кода не нужно знать параметры конфигурации базы данных или очередей.
Централизованное управление и конфигурация. Приложение не несет ответственности за подключение к базе данных.