Take a sofa with 40 fabrics, 4 wood finishes, 3 sizes and a left or right chaise. That is 960 pictures. Add one fabric and you have added 24 more. Render them all up front and you pay for every combination nobody looks at, and you pay again the day a material changes.
What happens instead
Each layer is rendered once per option it can show: the body in each fabric, the frame in each wood. A picture of a specific combination is then assembled on request from one image per layer.
The arithmetic changes shape. Instead of multiplying options together, you render their sum. In the example above that is 40 + 4 + 3 + 2 images rather than 960, and adding a fabric costs one render instead of twenty-four.
The same picture is only built once
Assembled images are cached, and the cache key is built from the images that were actually used, not from the address that asked for them. Two different requests that resolve to the same visual result therefore share one cached picture.
That matters more than it sounds. A size that does not change the visible upholstery, or an option that only affects a hidden part, does not create a new picture at all: it lands on one that already exists.
What this costs you instead
Compositing is not free, it moves the cost. You trade render time for coverage discipline: every layer needs an image for every option it can show, or a combination somewhere will fall back to the wrong picture. That is the trade, and it is why coverage has its own guide.
What to reuse
Troubleshooting
A combination renders slowly the first time
It was not in the cache. The next request for the same visual result is served from it.
I changed an image but the old one still appears
The cached composite is keyed to the files it used. Rebuild it by requesting the picture with caching bypassed, or clear the cache for the model.