Markus Barbey mentioned on the mailing list that PageDrawer.drawImage(PDImage) has a new instance every time, because the caching in PDResources is disabled, so the caching of the BufferedImage is useless.
It is indeed disabled, see near the bottom of
I'll enable it for cases where PDImageXObject does not need anything from the resources. An image could be in several pages with the same colorspace name, but that name could be something different in different pages. (very unlikeky, but possible!)