Acontece que essa exceção é devido a um bug no Hibernate. Um dos meus colegas de equipe encontrou um relatório de bug relacionado, Remontagem da entidade do JBoss Cache clusterizado pode falhar com "incompatibilidade de tipo de argumento" , que ocorre ao usar Hibernate e JBoss Cache.
De acordo com o relatório, definir a propriedade do Hibernate
hibernate.cache.use_structured_entries
para verdadeiro evita a exceção. De acordo com a documentação do Hibernate, esta propriedade "força o Hibernate a armazenar dados no cache de segundo nível em um formato mais amigável". Aparentemente, as entradas de cache estruturadas também garantem que o Hibernate mapeie corretamente as propriedades de um objeto no cache de segundo nível para a propriedade correspondente em uma entidade. Javalobby tem um artigo interessante que explica como o Hibernate usa o cache de segundo nível.
As versões do Hibernate após o 3.3.2GA também exibem esse comportamento?