As Radu points out, there are two different options here and we struggled deciding the best approach, so I thought I would share the decision process we used.
As we looked at our content we realized that as our topics evolved we would likely grow from [3 in your example] images in a topic to 4, then 5, and so on as we added more products using the same topic.
While DITAVAL could definitely work, it seemed like managing more than 3 or 4 images with filters in a single topic could become difficult for the author. It would be a lot of noise in the topic compared to the actual content.
So we decided that we would keep DITAVAL use to a high level product category and audience, and use conkeyrefs with an "image warehouse" for your example. The author builds up their images for the manual in a separate topic that is keyrefed in. That way the topic stays primarily as content, but we can swap in any image we want.
For us, this approach has worked very well.