Muy buen código, y de hecho si que está optimizado 

Cita de: Program outputFibonacci clasico:
fibo_clasico(37) = 24157817 (78176337 llamadas)
fibo_clasico(38) = 39088169 (126491971 llamadas)
fibo_clasico(39) = 63245986 (204668309 llamadas)
fibo_clasico(40) = 102334155 (331160281 llamadas)
fibo_clasico(41) = 165580141 (535828591 llamadas)
46 segundos
Fibonacci optimizado:
fibo(37) = 24157817 (88 llamadas)
fibo(38) = 39088169 (141 llamadas)
fibo(39) = 63245986 (90 llamadas)
fibo(40) = 102334155 (131 llamadas)
fibo(41) = 165580141 (95 llamadas)
0 segundos