How can we get small test error reducing only train error?
Yes, if you are classifying images, each example would be an image.  There is some distribution on images that are likely to arise in practice.

We need independence and identical distributions because without it we can't learn.  If we practice five times, but then are tested on something entirely different, our practice might not be useful.

The distribution refers to the distribution of each single image.  That has nothing to do with how many images you draw from that distribution.  Imagine flipping a biased coin.  I could flip the coin 100 times; each outcome would be a sample from that (biased) distribution, and that's true whether we have 10 coin flips or 1000 coin flips.