For me personally, the most simple answer that cleared everything to me was this one:
As this is possible then the input and output security are equal. Further explanations are not necessary, but thank you for them too.
There is a problem with consensus. The answer to the question "Is the address 1ABCD... empty?" is not unambiguous. Some nodes of the network (those informed of the transaction) will agree that it is empty (and they will drop any subsequent orders to spend from what they consider empty address). Some nodes can be isolated from the information and they will allow second (first in their view) spend from the address (and if they learn of the first "legitimate" spend later, they will drop it, because it will be second spend for them). This is effectively doublespend attempt, because there are two versions of spending specific coins (using one specific outupt as input in two different transactions) and different parts of Bitcoin network disagree which one is the legitimate one. Note that you can have also triplespend, quatrospend, etc.
It becomes clear as soon as some transaction (the one emptying wallet) is included in block. So even after one confirmation the (only one) transaction which gets included in the block is the one considered legitimate by all. However, although now it is clear which transaction is valid (the one in the longest blockchain), there can be change in the consensus "which blockchain is the longest one". So the (universally shared) validity can be revoked. But it is less and less probable with increasing number of confirmations (blocks built on top of block with legitimate transaction).
This is also (not very clean) way how to "add fees to existing transactions". If you send transaction with very low (or no) fees then it can take very long to confirm (include in block). Not only miners wont include it in block, but the transaction itself would not propagate across the Bitcoin network very well (nodes have rules for relaying transactions too). It might not even reach the miners. If you try to double spend the same coins (transaction with the same inputs, same outputs, but with different fees is essentially a different transaction) with higher fee, you will create transaction that will propagate much better (of course nodes already knowing about your previous no-fee transaction will ignore this second try, but such nodes wont be very common) and will likely be included sooner. Later, when no-fee transaction catches up, it will be dropped mercilessly as double spend.