When the selected items change, the metadatabox triggers an update of the coverart box, which compares and selects unique images to display.
However this was done by creating sets with the image lists and comparing image by image instead of simply using the image hashes and comparing if the image dictionary grew or not with an update of the file being compared. If the dictionary grows, it has a different image. If not, nothing changed.
With 18k files selected, the time spent on picard.util.imagelist._update_state fell from around 1.5 s (pretty long freeze) to 90 ms (16x faster, which still is noticeable).