Image caching in PDImageXObject can cause very high memory usage which has resulted in issues
PDFBOX-2313, PDFBOX-2310, PDFBOX-2101. Images are just so large that the current "on size fits all" caching isn't working well.
Pushing responsibility for caching down to callers of PDImage#getImage() would allow for use-case specific caching strategies, for example PDFRenderer could cache small images for the duration of a document being rendered, rather than having to re-create the PDImageXObject again for every page on which it appears. Likewise caching of large images could be limited to a single page, or not at all.