Well to go for the banking analogy.
The instance is your bank account. (Or one of them if you have many)
.Create() means you go to the bank and open an account
.Destroy() means you close the account (same as Free)
When you open the account you get a card with it (credit/debit/whatever).
You can have any amount of cards. But of course to pay in a store, you need at least one card.
:= is a magic card copy maker
word := TWord.Create;
word is you banking card.
foo := word;
Now you have 2 cards. You can use either. But it always affects the same account.
If you do
word.Destroy
you close the account.
All the other cards also stop working.
Any attempt to use any of those card, will get you into trouble because payment fails.
You also are not allowed to attempt closing the account again (maybe by using another card to close it). The bank is really strict on that.
While the account is open, and so long as you always hold on to one card, you are fine. You can make new copies.
Also cards to not have to be named. They can be slots in a list.
As I said, once the account is closed, none of the cards work any more.
But they still look like cards. You even can still copy them (though the new copies will not work either).
So best practice is to cut the cards, and mark them as no longer working.
To cut a card
word := nil; // does not include closing the account. Cutting a working card only affects the one card.
or
FreeAndNil(word) // includes closing the account. Also, only cuts this one card
If the account is closed, you have to find each card and cut it. If you don't, and you accidentally try to use it to pay, you go to jail.