Можно пример прагматичного подхода? В принципе, этот пост почти тянет на малую лемму ебанатики, но немножко не дотягивает
Отдельное приложение надо делать когда в этом есть смысл.
А смысл есть если команда разработчиков другая или если падение этого приложения не должно убить всё остальное что вместе с ним работает.
Это слабость JVM, к сожалению, одна маленькая ошибка может вызвать OOM, блокировку потоков и кучу ещё всего. И единственный выход - это изолировать критический код он менее критического. Чтобы вспомогательные сервисы не могли сломать основные.
Та же история с командами разработчиков. Вы не хотите чтобы все ваши команды деплоили свои продукты через одно игольное ушко. Это не масштабируется.