Map в Go не имеет встроенной синхронизации — если две горутины одновременно читают и пишут в одну map, будет fatal error (не race condition, а именно крэш, рантайм это детектит). Сделано осознанно: встроенная синхронизация замедлила бы все map-ы, а конкурентный доступ нужен далеко не всегда. Поэтому если нужен concurrent access — защищай sync.Mutex/RWMutex или используй sync.Map.