It does not answer your question, but possibly provides more clues: https://play.golang.org/p/s9Xnpcx8Myspackage main
func main() {
var a = "b"
x := a + a // does not escape
x = a + a // does not escape
for i := 0; i < 1; i++ {
x = a + a // a + a escapes to heapy := a + a // does not escape
println(y)
println(x)
}
}Only when a variable outside the loop is set inside the loop does it escape.