casimir,
the VI is reentrant only if you open a strict def for calling by reference.
If you open generic references to use the Run method, only one instance of
the VI is created. In the test you made with the for loop, check the error
cluster outgoing the Invoke Run Method node; you will see that only the
first iteration succeeds and other iterations return an error because the
instance of the VI is already running.
That being said, you can achieve what you want by saving the VI as a
template with the .vit extension. Doing so, every new open reference will
load a different copy of the VI in memory (different name) that can run
independantly of each other.
Jean-Pierre Drolet