¿El uso de variables globales de "net / http" se considera una buena práctica en golang?

El paquete golang "net / http" usa la variable global DefaultServeMux para registrar los manejadores. ¿Se considera esto una buena práctica o incluso un modismo de golang? ¿Es una variable global después de todo?

Las dos razones principales para no usar variables globales son AFAIK 1) que agregan complejidad y 2) son problemáticas en programas concurrentes.

¿Quizás 1) no se considera importante en este caso porque el desarrollador puede elegir no usar DefaultServerMux? ¿Qué hay de 2)? ¿Las variables globales siempre son seguras para hilos / goroutine en Go? Aún así, me sorprende que se use en la biblioteca estándar de Go. Nunca he visto tal práctica en otros idiomas / bibliotecas estándar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta