GtkObject is superior to PanObject in almost every way, except for thread safety. We originally used GtkObject, only to find that it has too many points of failure for use in a multithreaded application. PanObject, lacking most of GtkObject's functionality, also lacks its points of failure. A secondary advantage of PanObject is its low overhead.
PanObjects use PanCallbacks, rather than Gtk signals, for the observer/ observable pattern. This also is for relative thread safety.
2000/07/14: The glib object system currently in development looks good. perhaps when glib 2.0 comes out PanObject can be replaced with this.