Because when you rotate or translate the painter you change only the coordinate system it uses.
Suppose you have a class that receives a QPainter instance and draws some text on it (like QTextDocumentLayout or Q3CanvasItem). When you rotate the painter, everything that class paints will be rotated, but it doesn't have to know that you have rotated the painter --- it just draws using the current coordinate system.
Now if QPainter::boundingRect() would return a different rectangle depending on how much you have rotated the painter, it would brake everything --- suddenly the mentioned class would start drawing things differently if the painter was rotated and you wouldn't like that.
Bookmarks