Нужно ли лочить структуру мьютексом, если идет конкуррентная запись в разные поля структуры?
Да
Ни один из встроенных типов в Go не является конкурентно безоопасным в спецификации яэыка. В текущей реализации вы можете делать конкурентную запись в разные поля структуры указательного типа, то есть явную сссылку * , map, slice или channel. Нет никаких гарантий что такой код не упадет в других реализациях или на других архитектурах.