Created attachment 47176 [details]
To reproduce, open the attached test case in Safari, select View > Zoom Text Only, and then choose View > Zoom In a few times. Notice that the black HTML div stays put, but the blue SVG square moves and grows in size.
Deselect View > Zoom Text Only. Notice that the blue SVG rectangle is still not at the top left of the black box as it should be.
The issue appears to be that SVGSVGElement::currentScale() was designed for standalone SVG documents, where it’s appropriate to take the Frame’s zoom factor. For embedded SVG, this results in either applying text zoom to SVG (which is not text) or applying the full page zoom factor a second time to SVG.
Created attachment 47179 [details]
Fixed in <http://trac.webkit.org/projects/webkit/changeset/53684>.