You can’t have pixel perfect cascaded bitmap rotation unless you use only pi/2.0 multiples. Even a single pi/4.0 rotation is not pixel perfect. Play arround with gimp or whatever image program and you’ll see it can’t be done. The edges seems to have the same length but are not represented by the same number of pixels thus rounding thus data lost. In you app case they look different because the center of rotation is different thus other rounding. (and there’s some sin() cos() under the hood when rotating with a matrix to refer to another of your post I’ve read)
You’ll have to go parametric and draw stuff only once when the final rotation/translation/size is known (doable with matrix), and on a canvas you won’t rotate later! Or you can also go vecto-drawings (which is even more parametric).
You could also use bigger images then scale them down so the jaggs are less visible but it won’t be pixel perfect neither, that’s how gimp and other image manipulation program will do under the hodd (adding (bi)linear interpolation and antialisaing to look nice)