it takes the entire balance from all the addresses in the wallet, and then puts the change either in a new address or one of the existing ones? So every time you send some bitcoins, all the remaining coins from various addresses in that wallet end up in one address?
No. The wallet will choose a set of previously unspent outputs to spend. That set may be every output in the wallet, but it also may just be a subset of unspent outputs.
In your example, it is possible that the wallet will spend four of the five 1 BTC outputs, and send 0.5 BTC as a new output to a change address. It is also possible that a wallet could choose to spend all five of the unspent outputs and send 1.5 BTC as a new output to a change address.
Note that if four of the unspent outputs are chosen, and the 0.5 BTC "change" is sent to the remaining address that already has a 1 BTC output, that address now has 2 separate outputs (a 1 BTC output and a 0.5 BTC output) that can each be spent in a future transactions individually. On the other hand, if all five outputs are chosen, and the 1.5 BTC "change" is sent to an address, than address now has a single 1.5 BTC output that must be spent in full in some future transaction.