Just thought I'd share a couple of screen-shots of a feature hopefully targeted for gEDA 1.6.0, support for closed / filled polygons.
Since its simple to do so with cairo, I've implemented this a an arbitrary SVG type path string. Code-reuse from librsvg (LGPL) made this a more approachable task.
At the moment, the code allows modification of existing paths from within gschem by dragging the control points, but you can't yet create new paths, add / remove nodes or change node-types.
At the very least, we could hope to support reading and rendering polygons / closed arbitrary paths for gEDA 1.6.0, so if anyone is keen, the stock libraries can be improved with this pretty'fication. I already made a stab at the bipolar transistors.