Keep It Simple. If it has a block diagram (or at least compiled code), it's a VI.
If a VI is run at the top level, it's a top-level-VI.
If a VI is called by another VI, it's a sub-VI.
If a VI has a front panel that is presented to the user, it's a UI-VI. Or an interactive-VI. Or a user-VI.
But they're all VIs, the other names just give hints as to how the VI is used.