I am not sure of the other ways of going about this, but in my personal situation, I usually run an instance of VEP with a single instance of Kontakt and load up several instruments that relate to one another. A variety of keyboard instruments, Strings, Drums, Percussion, Synths, etc so Multis can be saved for each instance. So in this case, 1 instance of Kontakt can handle several midi channels and I run VEP in the host (Logic) on however many channels I need for that single instance.
I assume there are hosts that work differently, but this is how I use Logic in my situation.
If it is with software synths, I can run a rack of synths in VEP, 1 synth per channel. 16 Synths is quite a few and I am usually fine with 1 or 2 VEP instances in this situation. However certain synths only output on specific midi channels (usually 1 or between 1-4) and in that case I need to run more instances of VEP for synths as well. Largo is one that I think works this way and I always have to run it on the first midi channel in the VEP rack so if I want multiple instances of Largo I have to run multiple instances of VEP.
I usually run one VEP machine for Synths and another for samplers that stream from disk (Kontakt, BFD, Play etc).