если фронт сгенерен в статику и лежит там же, где и бэк (например в resources/static у спринга), то разницы по идее не будет. А если фронт отдельный, как нередко делается? Тогда запрос пойдет не напрямую в бэк, а сначала на нодовский сервер, который запрос разберет, потом отправит запрос на твой бэк и далее по списку. Лишние шаги взаимодействия
Очень мало кто в здравом уме и трезвой памяти будет использовать прокси на ноде, не неси чепухи, пожалуйста.
Запрос к серверу что с JSF, что с отдельным фронтом на каком-нибудь там реакте, генерится на клиенте силами JS-кода, обработка ответа от сервера происходит им же, опять же, что с JSF, что с каким-то реактом. Просто JSF от тебя это прячет.