I came across a paper on the algorithm the Slug library uses for font rendering. It has a much neater way of dealing with the many possible degenerate cases than other algorithms I've seen. Here's a circle-ish shape with a square hole in it that I rendered with my program using 8 Bézier curves (the straight lines are still Bézier curves).