Присваивание dst := src копирует только дескриптор map - оба указывают на одни и те же данные. copy() для map не применим. Правильно: цикл for k, v := range src { dst[k] = v } или с Go 1.21 функция maps.Clone(src).
dst := make(map[string]int, len(src))
for k, v := range src {
dst[k] = v
}
// или (Go 1.21+):
dst = maps.Clone(src)
Clone создаёт поверхностную копию: ключи и значения копируются по значению. Если значения - указатели или слайсы, внутренние данные по-прежнему общие; для глубокой копии нужна рекурсивная логика.