Olhando alguns códigos na internet, eu vi o pessoal utilizando o h:panelGroup e depois h:outputText,h:inputText,h:commandButton, etc dentro do h:panelGroup, mas tudo que foi feito com o panelGroup eu poderia fazer normalmente sem utiliza-lo, então vem a pergunta. Qual a necessidade do h:panelGroup?
Ele é mais para a organização mesmo.
Uma coisa que é bom, q eu uso bastante é quando a exibição de vários componentes eh variavel.
Por exemplo, vc tem 2 formularios na sua tela, e nem sempre vc mostra os 2, ai eu coloco tudo em um panelGroup e o atributo rendered é variavel.
Ele serve pra por vários componentes dentro de um único nó.
Exemplo: O f:facet só aceita 1 filho, então você pode por um panelGroup e colocar um graphicImage + um outputText dentro dele.
Outro uso do panelGroup é para se renderizar uma div utiliznado o atributo layout=“block”.