Перемудрили что-то. Кроме того если нужно именно рекурсивно, нужно добавить мемоизацию, если хотите чтобы оно вычислялось за конечное время (запустите ваш код для тысячи)
А вообще в задании ничего про рекурсию не сказано, думаю тур предполагает, что вы напишите что-то такое
func fibonacci() func() int {
a, b := 0, 1
return func() int {
result := a
a, b = b, a+b
return result
}
}