E aí, Alisson! Que bom que tá dando certo! Então...
Você colocou #{clienteController.clientes}, daí achei que "clientes" fosse um List de Cliente (algo tipo: List). Você disse isso na questão:
"O meu enderecos é uma lista, porque esse erro? não entendi o porque dele"
Se #{clienteController.clientes} retorna apenas um cliente (que contem uma lista de endereços), você só precisa fazer o h:dataTable iterar nos endereços e não no cliente. Seria somente o h:dataTable interno.
<h:outputText value="#{clienteController.cliente.nome}" />
<p:dataTable var="endereco" value="#{clienteController.cliente.endereco">
<f:facet name="header">Endereços do cliente</f:facet>
<p:column headerText="Cidade" />
<h:outputText value="#{endereco.cidade}" />
</p:column>
<p:column>
<h:outputText value="#{endereco.bairro}" />
</p:column>
<p:column>
<h:outputText value="#{endereco.numeroCasa}" />
</p:column>
</p:dataTable>
A primeira forma que te mostrei, era só pra você entender que quando queremos exibir os atributos cidade, bairro e numeroCasa de cada um dos elementos da lista, precisamos dizer de qual elemento da lista queremos exibir, por isso você teria que iterar a lista pra alterar o índice ([0], depois [1], depois [2], etc). É uma péssima prática fazer isso! Só mostrei pra você entender que tinha que mostrar cidade, bairro e numeroCasa do elemento da posição [0] da lista, depois as informações do elemento da posiçao [1], etc. Por isso é melhor iterar com um dataTable mesmo (até porque se você colocou uma lista de endereços, pode ser que você não saiba quantos estarão cadastrados para cada cliente).
Sugiro que você dê nomes no singular para os atributos que não são lista e no plural para os que são. Como cliente não é uma lista, dê o nome só de cliente, assim, o get dele será getCliente(). No caso de endereco, como é uma lista, dê o nome "enderecos", assim, o get dele ficará getEnderecos(). Porque quando olhamos o nome do atributo, assumimos que ele é uma lista ou não pelo nome. Seu atributo "clientes" sugere que ele seja um list, assim como "enderecos".
Quanto aos cortes nas palavras, deve ser alguma limitação na largura da página ou do h:dataTable, delimitado pelo CSS ou HTML, que podem estar cortando as larguras tanto do h:dataTable interno (de endereços), quanto o externo (de clientes).
Qualquer dúvida, só postar!
Abraço.