Ответ 1
Все, что вы можете найти в Интернете, что "Go поддерживает рекурсии с хвостом в некоторых случаях", и это было сказано в списке рассылки:
Он уже существует в 6g/8g для определенных случаев, а в gccgo в более общем плане.
В настоящее время мы не планируем менять язык, чтобы требовать, чтобы компиляторы реализуют оптимизацию хвостового вызова во всех случаях. Если вы должны иметь хвостовой вызов, вы используете цикл или инструкцию goto.
Чтобы получить эти случаи, вам лучше копаться в golang source, который открыт.