You can go from zero to 100% on all controllable parameters or anything in between, so this is "on-off" for all intents and purposes. And some effects can go from 0-15% while others go from 20-30%, at the same time on the same controller.
You can also autoengage effects so that the effect is "off" until you move the pedal a bit, and you can still control the parameter with the same controller, so that's a very reall "on-off". For example, I have my wah set to autoengage on cc1, and I also use cc1 to control the wah. I use reverse-threaded pedals so "down" is off. When I move the pedal about 1cm the wah comes on, and I control the wah as normal. When I toe-down all the way it goes off. (I kind of live in the honk zone with my wah so I never turn it off by accident). I also have some patches where a clean sound gets dirty via an OD pedal, so my cc autoengages (turns on) the distortion in the first centimeter of play, then increases gain, drive, and some assorted other things as the pedal sweeps.
Third method: you can plug interrupt or latch switches into two switch jacks in the back of the axe, or assign such switches to any available pedal jack on your midi controller. I use one for tap tempo and one to bring certain effects in and out (usually harmonizer). Again, true "on-off" if you use the switches that way.
Most importantly, you can stack combinations of these in one controller. You don't need different controller channels to control different parameters if these parameters change together. So you can assign cc1 to mess with gain, volume, delay parameters, and many other effects all at the same time. The only time you need to use separate controller channels is if you want to be able to use a different pedal to control one parameter totally independently of another. I dedicate cc1 to wah, which is present on every patch, for example. But cc2 might do nine things at once.
I tend to use two switches and two controllers, but I control lots of parameters with a single controller. Example: chunky dry rhythm patch becomes screaming lead patch via cc: gain/drive, master volume, delay level, delay feedback, reverb level all change together, and I might fade in some flange or something to boot. So I'm doing 5-6 things at once with one controller. I have some odd crystals patches where I do even more at once. You can assign all kinds of parameters per controller. Your friend might be coming from a perspective of certain other types of gear where you can only assign a controller to do one thing.
So ultimately, you have 8 active continuous controllers and two switches to choose from at any one time, which is a pretty full pedal board! But you can control an unlimited number of individual parameters at one time in each patch by stacking parameters onto one controller. There are deeper things you can do also, by assigning certain midi commands to do certain things. Make sense?