The only issue I can see is that you would need more IIC traffic than you would have if you just passed a variable even if the actions were interdependent... One IIC transmission and and one data byte and a case statement would allow for more flexibility...
Half the IIC time and up to 256 actions or combinations of actions... Still call the same functions with a single IIC transmission. With the benefit of a default condition built in to the code.
The reasoning on my part is that the process is serial as the processor can only do one thing at a time...
While it is a common practice to interleave tasks I'm not aware of anything that has to happen exactly simultaneously.
In my experience a case statement is easier to modify and to debug, should that be necessary.
Doc