> What are some advantages of using this reference, as opposed to linking directly to subVIs?
The main advantage comes when the programmer wants to run a VI like a Sub-VI, but wants to call the Sub-VI by name.
I think the most common scenario in which the "Call By Reference Node" is used, is when the programmer is using a "plug-in" architecture. Call by reference allows a program component - the called VI - to be changed without requiring editing the "main" program - all the program needs is to create a reference from the path of the callee, and that's supplied at run-time. Even if all possible sub-VIs are known at compile-time, the programmer may opt for this structure instead of calling every possible VI - perhaps 10s or 100s - in some sort of Case structure. Also, The "Call By Reference Node" is the only way I know to accomplish "recursive" VI calls (prior to LV 8.5.)
I'd bet my life there are lots more applications for "Call By Reference"!
Cheers.
"Inside every large program is a small program struggling to get out." (attributed to
Tony Hoare)