I've been rewriting my Spinners web app (which renders a lot of rotating objects) using canvas. It was written using SVG.
You lose a lot when you do this: debuggability, free hi-res zoom, and really easy animated transforms. However, because drawing with canvas is triggered by requestAnimationFrame, you at least do not lock up Mobile Safari because the browser asks your app to draw only when it has breathing room.
However, I suspect transforming the canvas for every single object on each update is still a bit much for Mobile Safari. Things slow to a crawl (but at least do not lock up!) when there's a certain amount of objects to draw. Optimizing this is going to push me into unfortunately weird territory, like doing rotations on a secret hidden canvas that's small and the like. I'm hoping to avoid doing transforms directly on image buffers.