It worked because lazyness blocked some forwarding while it can be done. It is a template issue in outlined functions.

Here, ```fib(n)``` become ```fib(cache, n)``` to keep context.
and ```def fib ...``` become
```
cache = {}
fib = functools.partial(pythran_fib, cache)```
and forwarding transform it as 
```fib = functools.partial(pythran_fib, {})```

It is valid for Python but not for Pythran.