Hi,
Ok, I see what you mean.
The issue is that the images entries in the database are different but they all point to the same image on the server disk.
The system has a check to prevent deleting the same image if it is used for several products and only delete in on the disk if there are no other products using it when you delete an image entry.
However, in your case, it's other images of the same product using the same image on the disk and that isn't taken into account in the check.
Change the line:
$this->database->setQuery('SELECT file_path FROM '.hikashop_table('file').' WHERE file_path IN ('.implode(',',$oldFiles).') AND file_ref_id != '.$status);
to:
$this->database->setQuery('SELECT file_path FROM '.hikashop_table('file').' WHERE file_path IN ('.implode(',',$oldFiles).') AND (file_ref_id != '.$status.' OR file_id IN ('.implode(',',$element->$type).'))');
in the file administrator/components/com_hikashop/classes/product.php and that should avoid the problem.