The key question for me is memory usage and recovery.
Am I correct in "assuming" the following:

1) String literals that reside and are compiled in the EXE remain in
memory throughout the life of the App.

2) String literals that are loaded at runtime (say from text file or
database) can be removed from memory depending on the object to which they are loaded For example if a text file is read into a MessageBox string and the procedure
where the Messagbox resides finishes, the string is removed from memory.
Other objects where strings are read to the object from a file are removed from memory once the object is: set = Nothing.

3) A Resource file is read and memory allocated when the EXE is compiled and
strings stays in memory -- no memory is recovered.