Я не знаю библиотеку, которая непосредственно отвечает перечисленным вами требованиям, но я думаю, что эти вещи не составит труда написать в сценарии, просто используя SVG DOM.
Для первого задания кажется, что проще всего было бы просто сгруппировать две фигуры.
var shape1 = document.getElementById("shape1");
var shape2 = document.getElementById("shape2");
var newG = document.createElementNS(svgNs,"g");
shape1.parentNode.removeChild(shape1);
shape2.parentNode.removeChild(shape2);
newG.appendChild(shape1);
newG.appendChild(shape2);
Для второго задания вы можете просто получить ограничивающий прямоугольник формыи найдите центральную точку этого.
var bbox = shape1.getBBox();
var centrePoint = {x:bbox.x + bbox.width/2, y:bbox.y + bbox.height/2};
Для третьего задания вы можете скопировать фигуру, а затем применить к ней масштабное преобразование.
var shape1Clone = shape1.cloneNode(true);
shape1Clone.setAttributeNS(null,"transform","scale(.75)")
Для автоматизацииЭто позволяет запустить его на удаленной машине, использовать библиотеку Apache Batik и выполнять сценарии с помощью Rhino.Посмотрите на это для примера, как это сделать: