Come on: drawing to a QImage should also be done without using the cache for a painter with scaling ( see the code you have posted ! ) and all your code should be obsolete.
As you wrote that this is not working I'm more interested in fixing the bug instead of finding workarounds.

About your proposal adding QPaintEngine::Picture as not aligning: this is as wrong as returning that it is aligning. The correct answer would be 'don't know' as it depends on the paint device where the picture is replayed.

You might avoid rounding errors when replaying the picture with a scaled painter, but instead you introduce other rounding errors f.e. where gridlines and curve symbols are not aligned anymore. What type of errors are less annoying depends on the application and can only be decided there ( use QwtPainter::setRoundingAlignment() ) - but as it is not possible to avoid having rounding issues with record/replay paint devices ( QPicture/QwtGraphic/QSvgRenderer ) I would try to avoid them.

Uwe