Look at the image in the original post. Now think about the list of coordinates that will be returned by everyImageLocation(), each one corresponding to the initial position of one of the delete buttons. Now imagine that you click that first delete button and that it removes the corresponding item from the display. In many such systems, the item will disappear and all the elements below it will move up, so they will no longer be at the coordinates returned by everyImageLocation() before the delete button was clicked. You might be able to work around this by working from the end of the list back to the beginning, but that might also cause more delete buttons to scroll into view that aren’t currently displayed on the screen, and those won’t be represented in the list you’re iterating over.
The approach that I recommended will continue to click delete buttons for as long as they appear on the screen, so even if more scroll into view, they will get clicked. The only way that would happen with everyImageLocation() is if you put it in a loop, and you’d end up doing more searches than you would if you were just looking for the first instance each time.
EveryImageLocation() works really well when you need to identify a number of elements that aren’t going to be affected by your interacting with one of them, but if clicking one of them changes the locations of the others, then you lose the benefit of it and it actually becomes much less efficient.