Depois de horas de pesquisa, descobri que o problema é authbind. Ele pode ligar o tomcat a portas menores que 1024 apenas para IPv4 e não funciona para IPv6 (ele deve estar em novos kernels, mas nesta máquina o kernel 3.2 é usado).
Quando eu mudei o authbind em / etc / default / tomcat7 e modifiquei meu server.xml para ouvir em 8080, então redirecionei para 443 e escutei em 8443, o tomcat começou a escutar em IPv6 como deveria.
Redirecionar as portas via iptables também é possível apenas para IPv4, já que o ip6tables vem com suporte nat e redireciona apenas do kernel 3.7.
Eu então usei um daemon chamado xinetd para redirecionar o tráfego de 80 para 8080 e de 443 para 8443. Agora tudo funciona como deveria.