Probably better guidelines that dictates 'size' of a vi are:
typically no more than 1 video screen in size
is it legible
and is it's function and operation clear.
I have seen examples of '1 vi does it all' that were many screens wide and tall, totally a flustercuck, and nearly 1 MB in size.
Globals and local variables (except for LV2 style) are typcially shunned for they can create a host of problems (race conditions, indeterminant data).
Use connector pane to wire controls and indicators to. Then use wires between vi's to transfer data. I tend to use clusters to hold shared data.
~~~~~~~~~~~~~~~~~~~~~~~~~~
"It’s the questions that drive us.”
~~~~~~~~~~~~~~~~~~~~~~~~~~