Все в Go передается по значению (в Go нет понятия «передача по ссылке»).
Поскольку все передается по значению, оно копируется. Копия указателя - это просто копия адреса, а не «глубокая копия». Таким образом, копия объекта без прямых или скрытых указателей будет глубокой копией, а копия чего-либо с явным или неявным указателем будет поверхностной копией.
Массивы не содержат указателей, поэтому, если у ваших элементов Array нет, вы получите глубокую копию.
Срезы, каналы и карты do содержат (скрытые) указатели, и их копирование даст вам копию фрагмента (канала, карты), но мелкого: содержимое внутри не будет скопировано как они не являются прямой частью среза (срез содержит указатель на фактические данные).
Так что в Go есть понятие глубокой и мелкой копии. Грубо говоря: все копируется глубоко, а глубокая копия указателя - это просто копия адреса (не указателя): глубокое копирование останавливается на указателях (даже скрытых, встроенных в язык, как в слайсах).
Как обычно, довольно очевидно и детерминировано, что копируется, когда указатели явны в Go.