Eu creio que o problema seja os INTs mesmo, como a Vanessa falou.
Isso ocorre pois usando valores inteiros numa função recursiva, estamos calculando iterações cada vez mais "pobres" em relação ao valor "verdadeiro".
Imaginem uma função f(x) = 2,5*x*(1 - x^2)
f1: f(0,700000000) = 0,892
5
f2: f(f(0,7)) = 0,4539338
67
f3: f(...) = 0,90099522
5
f10: = 0,948294
617
f30: = 0,88
1887442
f50: = 0,
688576274
f1: f(0,700000001) = 0,892
499998
f2: f(...) = 0,4539338
71
f3: = 0,90099522
9
f10: = 0,948294
453
f30: = 0,88
2549496
f50: = 0,
199407663
Acho que é mais ou menos o que acontece no EP: a cada iterada, o valor é um pouquinho diferente, mas após um certo número N de iteradas, a precisão fica pobre.
Por isso que usando float é melhor, pois ele vai truncar só quando for imprimir na tela, o que causa uma perda muito pequena de precisão, pois ele trunca uma vez só e só no final dos cálculos. Ele não utiliza o valor truncado para iterar mais.
Espero que seja isso, se eu disse alguma coisa errada, alguém me corrija.
Fonte interessante:
http://www.geocities.com/inthechaos/num.htm