У Raphael есть бэкэнд для рисования для IE, который использует VML DOM, и бэкэнд для браузеров с поддержкой SVG, который использует SVG DOM.Затем он имеет фасад, который предоставляет унифицированный API рисования, и во время выполнения загружает соответствующий бэкэнд, который делегирует вызовы унифицированного API рисования соответствующему API браузера (либо SVG, либо VML DOM).
Это распространенная стратегия в библиотеках js.Например, эта стратегия также используется в dojox.gfx .Посмотрите, вот адаптер SVG: http://svn.dojotoolkit.org/src/dojox/trunk/gfx/svg.js А вот адаптер VML: http://svn.dojotoolkit.org/src/dojox/trunk/gfx/vml.js
Хотя я и сам не пробовал, еще одна библиотека, с которой вы можете ознакомиться, - Ample SDK, который работает аналогично SVG Web, в котором разработчик программирует против обычного API DOM SVG, в отличие от конкретного API, предоставляемого библиотекой JavaScript.Как и SVG Web, для этого он использует теневой DOM.Однако он отличается от SVG Web тем, что не использует Flash, а вместо этого делегирует VML внутренне в IE.