Чтение из nil map не паникует: возвращается zero value типа значения. Проверка v, ok := m[key] даёт ok == false. Запись в nil map вызывает панику.
v, ok := m[key]