So ... I've spent a long time looking at this.

The short answer is: your original comment "why do we do this?" is because you've misunderstood how the SVG library works.

The library - from day 0 - was built to do this:

1. work out the position and transofrmation of everything
2. position everything correctly on screen. If something needs rotating or skewing, do that to the shape itself
3. build CALayers that make things appear in those places. NEVER SET THE TRANSFORM FOR ANY LAYER

Advantages:

a. Users can use 3D transforms, or custom Affine transforms, and it all works
b. Render speed and hit-test speed is - theoretically - much faster because the transforms only have to be calculated once

Disadvantages;

c. If you take a layer that's invisible (e.g. <G> elements are defined as invisible in SVG), and make it visible - it will appear to be in the wrong place.
d. We need the "layoutLayer" method to be called on EVERYTHING after making the layers - because we don't know the correct size of ANY layer until we've rendered ALL layers