Everything you can find over the Internet, that “Go supports tailable recursions in some cases”, and that was told in mailing list:
It is already there in 6g/8g for certain cases, and in gccgo somewhat
We do not currently plan to change the language to require that
compilers implement tail call optimization in all cases. If you must
have a tail call, you use a loop or a goto statement.
To get those cases you’d better dig into golang source, which is open.