Looking at the issue below in more detail, rendering fails at the following point: in AbstractGraphicsNode.paint(), at line 491:

        boolean paintNeeded = true;
        Shape g2dClip = curClip; //g2d.getClip();
        if (g2dClip != null) {
            Rectangle2D cb = g2dClip.getBounds2D();
            if(!bounds.intersects(cb.getX(),     cb.getY(),
                                  cb.getWidth(), cb.getHeight()))
                paintNeeded = false;

I looked at the data, and it seems that this fails because the bounds used in this intersection test do not have the transformation from the Graphics2D object applied to them. thus, it is not the final (rendering) bounds that is compared to the clip area, but the 'original' bounds of the graphics node.

I can't test if this would work or not, as I can't compile batik out of the box, see here: https://issues.apache.org/jira/browse/BATIK-1033

I've created a ticket with this issue here: https://issues.apache.org/jira/browse/BATIK-1034