When he writes "you expect a good, optimizing compiler to..." he is implicitly stating that he wants more than good optimizing compilation, he wants (understandably, but let's be explicit) iterated compile-time evaluation -- he wants fun() to be an integer value of 60.
It is true that the gc Go compiler lacks this. I like it as a feature, it is like invoking "reduce()" in a symbolic algebra system. I hinted at it a while back by asking if Go should notice when a function returns a pure value and do substitutions -- clearly "x := math.Sqrt(4)" suggests "x := 2.0" or "const x = 2.0" depending on context. But this is a non-trivial step from compilation in the direction of metaprogramming via Turing-complete macro processors. It will make the compiler bigger and slower, and intellectually larger.
It is an open issue decision wise, and a great deal of work implementation wise.