I think I just found the answer. I re-read the article about Virtual
Tables and found this:
"Once an item has been initialized, either by a SWT.SetData listener or by
TableItem API such as setText(), then its value becomes permanent and the
SWT.SetData listener is not called to set its data again. The only
exception to this occurs if an item is cleared with Table clear() API, in
which case the listener will be called to set its data again as necessary."
So I guess it's true, all the items will be cached automatically.