Я не нашел способа сделать это с помощью библиотек Каира. Но это особенность, которую я тоже искал. Было бы определенно полезно, когда (например) поглаживание комбинации двух путей - операторы компоновки, упомянутые ntd, похоже, не могут этого сделать.
Тем временем я пытаюсь написать сценарии для inkscape и позволяю inkscape выполнять объединение / различие. Приемлемо для проблемы, над которой я работаю, но определенно не для вашей. Вам повезло, с Каиром или любой другой библиотекой SVG? После нескольких дней поиска в Google, это не кажется тривиальным: /