Je bezpečné stejně jako Java nebo C++ v tom smyslu, že co projde překladem, nespadne.
HAHAHAHA. A ten o policajtech, co musí chodit ve třech, znáte?
Programy v Javě padají naprosto běžně. V C++ se ve vyjímečných případech může stát, že to, co projde překladem, nespadne. Go má drtivou většinu stejných zdrojů pádů, jako C++: neinicializované nebo náhodné ukazatele, dereference NULL, race conditions, paměťové leaky (které garbage collector neodchytí), divoké přetypovávání atd. Snad jedině nekontrolovatelné duplikace a kontrola mezí polí jsou v Go přece jenom trochu líp řešené.
Statický duck typing à la Go je taky nebezpečný, protože když u nějakého parametru předpokládáte metodu tentononc(), úplně klidně se může stát, že se úplně jiná metoda stejného jména objeví třeba v knihovně, nebo ji jinde implementuje jiný člen týmu. Překladač to vezme a bude spokojený, že nároky na rozhraní objektu jsou splněné, ovšem při běhu to pak bude dělat psí kusy.
Což vůbec neznamená, že Go není dobrý jazyk. Je, mám ho docela rád, a na to, k čemu je primárně určený, je dokonce výborný, stejně jako Python nebo Smalltalk jsou skvělé jazyky ve svých vlastních oborech. Ale bezpečné Go prostě není, a staticky prokazatelně bezpečné už vůbec ne. Na bezpečnost je Rust nebo případně Ada, na snadné programování na vysoké úrovni je Python, a Go je výborný kompromis mezi snadnou použitelností jazyků, jako Python, a rychlostí staticky kompilovaných jazyků.