Hi,
I did a little spelunking with negative results.
0.  Installed current macports sources for gtk3 (includes gdk3) and
    glib2.
1.  There's nothing obvious in the implementation of
    gdk_events_pending, which first looks at event queues, I think,
    then goes and examines the "events pending" flag on each open
    display.  If there's a bug, since peek doesn't find any events, I
    guess it's because somehow that flag doesn't get cleared even
    though the queue is drained, but I didn't feel like going after
    that yet.
2.  There are no bugs on 
GNOME.org that look like this.  Ditto
    
trac.macports.org.
3.  GNU Emacs doesn't use the toolkit event loop at all, but rather
    invokes event dispatch itself at the glib level.
4.  glib also basically just checks "events pending" flags.
5.  Thank god for grep.  GNU keeps all of its events and command loops
    in "keyboard.c", and its handling of window system events in
    "xgselect.c", exactly where you'd expect to find them.  <sigh/>
I'll push on #1 later, and if that doesn't get anywhere I'll file a
bug on 
GNOME.org.
Steve