This isn't obvious to me. You can have javascript external to the svg for making it interactive, it doesn't have to be embedded in the svg. And the interactivity for json canvas isn't embedded in the canvas json either.
JSON Canvas:
graph primitive
easier to read, write, and reason about
harder to render
SVG: path primitive
easier to render
harder to read, write, and reason about