Limitação no stacktrace impresso

Alguém sabe porque que esse código:

public class Teste {
	
	private static int a(){
		return a();
	}

	static public void main(String args[]) {
		a();
	}
	
}

Imprime um stack trace com apenas as últimas 1024 chamadas de função quando dá StackOverflowError?

Sei que são feitas mais de 9000 chamadas nesse caso (testei imprimindo uma string a cada chamada).

Só de saber que é um estouro de pilha já não resolve seu problema?

Não. Eu escrevi o código com o objetivo de lançar um StackOverflowError.

O que eu gostaria de saber é porque foi tomada, pela sun (estou usando a vm dela. Não testei em outras), a decisão de limitar o stacktrace. Se existe algum motivo ou se simplesmente acharam que 1024 era suficiente para qualquer erro.