map[string]*User лучше map[string]User для модификации значений?В map[string]User нельзя изменить поле элемента напрямую: m[k].Name = "x" не компилируется (значения в map не адресуемы). В map[string]*User значение - указатель, поэтому m[k].Name = "x" допустимо и меняет объект по ссылке. Компромисс: указатели увеличивают нагрузку на GC, но позволяют изменять "на месте" без копирования структуры.
m := map[string]*User{"alice": {Name: "Alice"}}
m["alice"].Name = "A" // OK