People who want reproducibility independent of C toolchain can disable cgo and use pure Go net. But if a system has custom .so files listed in /etc/nsswitch.conf, net must use cgo to run them. In general we can't predict that, so using cgo is conservative but correct.