The "safety" is not the issue, it's the compulsion of using many layers of (somewhat leaky) abstractions that make debugging and otherwise reasoning about behaviour difficult.
I was going to say +1 with golang, and you said it. So just emphasizing that many people prefer code clarity over cool things that make code unreadable (templates...)
gstreamer, gtk, etc, are really easy to work with and browse the source.
This is why I love golang as well.
Side note, it is funny how much gstreamer and glib try to add c++ "ish" features to c.