I don't understand this. There's a reasonably clear HIG document in GNOME which is continuously updated. The strict packing rules make the resulting interface flexible in regards to RTL languages and reasonably consistent with other applications. GTK+ has widgets for just about every purpose. Since the introduction of Cairo it is trivial to draw custom widgets, especially using the gtkmm and cairomm C++ bindings: the custom tab bar could be done in a day. With those bindings it is even quite easy to modify the behaviour of existing widgets by overloading their signal handlers, Murray Cumming and the others working on those have invested a great deal of effort to truly (and easily) expose the object system via C++.