I've finished the first version of the GStreamer plugin that encapsulates facedetect and rsvgoverlay plugins.
I created a GstBin derived plugin that handles the bus messages sent by facedetect, then I allow the user to change the image size and position relative to the face itself. So any image can be placed above, below, to the left or right of your face, and it will have the right size when you get near or far away from the camera. Width and height can also be set as fractions of the face size.
I handle the bus messages sent by facedetect element in the container bin itself. At first I thought I would need to catch events in a custom internal element placed between the facedetect and the rsvgoverlay elements. This solution ended up being simpler and better, and we didn't have to add event sending functions to facedetect.
To see it working I downloaded some random images from openclipart and tweaked their sizes and positions so they would fit my face.
So, this took me a little longer than I thought, but I learned a lot about GStreamer plugins. Now I'll ask some people to review my code so it can be uploaded to gst-plugins-bad. Enjoy!
edit: here is the patch https://bugzilla.gnome.org/show_bug.cgi?id=642759