Suppose for a moment we have an event stream, some events can be handled simply by updating a variable... others would require calling several functions....
If you are updating same variable then switch/case is better... depending on code used GCC can produce code without conditional branches.
Regarding jump tables... it seems that it does not good for branch prediction...