That's probably because svg has to be rasterized in order to change it.
You can change its width to a negative value, but constant changes like that should be discouraged due to the extra processing needed.
Use a Sprite, in the end its all raster anyways.