what @dave96 has written, is also my approach, because of the non-integer transformation the borders contains mixed pixel between the parent and the child region.
repaint(1, 1, getWidth()-2,getHeight()-2);
…can fix this, but of cause you need to care that the animation does not goes beyond the borders.
But anyway when you begin to have more than 2 animated objects, alle the objects between this objects also repainted, because the os or juce merge the two repaint regions.
Another experimental approach could be, to add these opaque components directly to the desktop (like the openGL component), which are following the position relative to the window, so the OS-window manager composes the regions without any repainting involved.