¿Las rebanadas de golang pasan por valor?

En Golang, estoy tratando de hacer una función de división de codificación para mi problema de vendedor ambulante. Mientras hacía esto, noté que cuando comencé a editar el segmento, la función de codificación era diferente cada vez que lo pasaba.

Después de algunas depuraciones descubrí que se debía a que edité el segmento dentro de la función. Pero dado que se supone que Golang es un lenguaje de "paso por valor", ¿cómo es esto posible?

https://play.golang.org/p/mMivoH0TuV

He proporcionado un enlace de juegos para mostrar lo que quiero decir. Al eliminar la línea 27, se obtiene un resultado diferente al de dejarla, esto no debería hacer una diferencia, ya que se supone que la función debe hacer su propia copia del segmento cuando se pasa como argumento.
¿Alguien puede explicar el fenómeno?

Respuestas a la pregunta(1)

Su respuesta a la pregunta