It seems that Cairo itself has successfully implemented a large thing (the cairo_t) without using GObject or any "base" library. I see no reason that the text layout cannot do the same thing. What exactly does GObject provide and why is it so hard to remove from Pango?