Hi,
I think the attached patch implements a slight simplification of convolution of areas with regions: since segments within bezier curves are by construction connected (p3 of one segment is p0 of the next), the convolution was including duplicates from the region at successive endpoints.
The gsharp :quarter-rest becomes a union of 32 bezier areas with this patch (down from 47), and doesn't look noticeably different to me, either with the X or the html canvas output methods; the canvas output is overall smaller by 20%, just from this change.
I believe that there are still duplicate regions in the quarter rest, but if this change could be reviewed I'd be happy.
Cheers,
Christophe