I don't know, Robsta. It seems to me that if one followed your Python suggestion, we'd still experience Morten's problem. The theme in question would try to query the property of a "None" GtkWidget. Sure, it wouldn't crash like the C code will. Instead it would throw an Exception that probably wouldn't be caught, thus causing the program to exit. Even if it were, the widget part wouldn't be drawn correctly. The end result is the same. Python won't protect you from "thinkos".
The only real solution I see for people to pay more attention to their code. Or make "one theme engine to rule them all", ala the librsvg theme engine. I'd need to upgrade to GTK+ 2.8 and make it work, but stranger things have happened :)