There are certain cases where you need a global mutex (see #9713 for one example) and the only reasonable way to do that without something like Go's init functions is a mutex type with a static initializer similar to PTHREAD_MUTEX_INITIALIZER from libpthread.