Eu estava falando da linha e não da página.
RESOLVI o problema, vou explicar sucintamente pra quem quiser.
Pelo que pesquisei não existe solução para isso (eu acho q é algo util e podia sair na nova versão).
Fiz uma GAMBI que funcionou mais ou menos para o meu caso da DANFE onde a fonte de dados é um XML que não posso mexer, segue o passo a passo:
1-Antes de chamar o relatório via Java eu interpretei o XML e descobri quantas linhas de detail existiam
2-Com base na quantidade de linhas, quantidade de linhas por página (considerando a primeira página cabendo menos linhas), eu cheguei a um número de quantas linhas são necessárias pra completar a última página, com base nisso criei uma variável AUMENTADOR contendo esse número vezes “\n”, assim supondo que cabem 12 linhas por página e essa danfe vai mostrar 2 itens minha variável conterá 10 \n: "\n\n\n\n\n\n\n\n\n\n"
3-Passei tanto a quantidade de linhas quanto o aumentador como parâmetro pro relatório.
4-No detail do relatório criei um campo pequeno la no meio que mostra o parâmetro AUMENTADOR com um print when expression $V{REPORT_COUNT} == $P{QTDE_LINHAS}. Dessa forma esse aumentador será colocado na última linha.
5-Esse campo também precisa da opção “stretch with overflow” selecionada.
Desse jeito, a última linha da última página aumentará de tamanho de maneira invisível para que complete até o final da página e assim as linhas verticais (que precisam estar com a opção stretch type = relative to band height) esticarão quando algum campo do detalhe aumentar, e no caso o campo invisível aumenta.
Não é a solução ideal pois o tamanho de cada \n não é o mesmo de cada linha de fato do relatório, ou seja, na última página fica um espaço um pouco maior entre o detail e o page footer, mas no geral ficou bom e com uma boa performance.
Espero ter ajudado o próximo a ter esse problema.