There isn't really a "why", it's more a "when" situation ; basically speaking it mostly depend if it's a long run or a short run.
Take a poker game by example.
You start with the full set of cards, and slowly draw cards from it. It's something that will spread through many parts of your code.
There's the part where you shuffle the cards and the one where you distribute them to the player. If you follow the Texas holdem rules, there's then the five cards drawn in the middle.
It feel logic to have somewhere a list that contain all the cards, then works with at copy of it that will be "the packet used for this play". Then, at the end of the said play, you reset the packet.
After all, it's what happen in real life. You remove cards, and at the end you rebuild the packet.
At the opposite, you've the temporary use of the variable.
I don't have a better example that cross my mind, but still the
while
situation is a good practical example.
Ren'py language do not have a
for
loop, so if you've to pass through a list in Ren'py language, you've to do this:
Python:
label whatever:
$ workingList = theList[:]
while len( workingList ) > 0: # As long as the list contain something.
$ var = workingList.pop() # Get the first entry in the list.
[ ... ] # Do whatever you've to do with it.
Here, it feel more logic to "destroy" a copy of the list, than to restore the list once you've finished.
While the result will be the same with both approach, the logic, and therefore the way you'll apprehend your code, differ.
I'm not sure if it will talk to everyone, decades of practice make me perceive the difference, but I don't remember what where my thought when I started. But globally I would say that it's a question of what is easier/more natural. Is it "to restore the original", or is it "to damage a copy you don't care about".
The way you'll write your code will differ, and sometime be easier with one way than with the other. This partly because your mind will be set on a different direction, and so see the problem from a different angle.
If you want, it's like talking about the duration of a car trip.
If it's a trip in a plain, you'll say that it's a X miles/kilometers long trip. But if it's in mountain, you'll say that it's a X hour long trip. This because the speed is relatively constant, and higher, on plain, while on mountain it will totally depend of the number of turns, the size of the road, is it going up or going down, and so on.
The two approach lead to the same result, but each one put you in a different state of mind, that make you apprehend the situation in a better way.