That I get but I'm wondering about the UXTO list. Is that created by the client after analyzing the block chain it downloads? Does it keep the entire UXTO list (for the whole world) in a separate database or does it just keep transactions that relate to addresses in your wallet?
There is no separate database but there is a UXTO index which allows quick lookup of transactions. In theory one could prune the database such that only tx in the UXTO remain. Your client updates the UXTO in realtime. As it learns of new confirmed txs (via block notification) the inputs are removed from the UXTO and the new outputs are added. The client attempts to cache the UXTO to memory (for faster verification) and flush spent outputs only to disk. If you have sufficient memory available the overhead should be negligible and it allows near instantaneous lookup and valdation.