Right now Gio creates a top-level window for you and that's the only one you get to interact with. That makes total sense for phones or webpages, but not the desktop. So supporting multiple top-levels would be nice. (Bonus points / extra credit for somehow supporting that transparently in the browser! :)
I suppose one could just fork a new process per top-level window, and then they could communicate via local RPC, but I think that would be sub-optimal, if there's any way around it.