The best switch for me by far would be simple multi-step twisty with nice solid progressive rotation detents about 60 degrees apart for OFF, LOW, MED, HIGH, STROBE, SOS (with optical switching to insure good reliability).
Unfortunatly, most multi-mode lights available now are sequential with single pole clicky or twisty switches.
For these multi-mode lights which use twisty or clicky switch cycles to sequence between modes, I think that the sequence should be user selectable, but if I had to pick a single mode sequence it would be:
MED, LOW, HIGH, STROBE, SOS
(This is the sequence used by lights like the Jetbeam C-LE and Fenix L0D-CE)
I know some seem to also like a simple LOW, MED, HIGH sequence on these cyclic lights, but for this type of light I hate this sequence, because sometimes these lights miss a switch or skip a mode, and with changes in ambient light, it then becomes very difficult to reliably tell sometimes what output level you really have selected. So you could be in high when you think you are in medium. If you were changing a tire at night for example, this could be a disaster if your runtime was much shorter than you were expecting and your light gave out before the job was done.
With the MED, LOW, HIGH sequence on the other hand, the brightness change sequence is very distinct and lends itself well to unambiguously identifying each mode change, and detecting when a mode has been skipped (guess that's why Fenix and Jetbeam do it that way).
I realize that reasonable folks will disagree when it comes to what the best sequence is, so the best thing by far would be to make the mode sequence user programmable.
Unfortunately, that complicates things even a bit more, because now we have to have a UI to select the UI!
Here is how I would do it . . .
To select the mode programming mode, the user fast cycles the switch 5 times to send the light into mode programming mode.
Light responds with 5 quick flashes
Then you would cycle the switch quickly the number of times corresponding to the mode table number for the mode sequence you want (simple as that).
The light will occasionally miscount, so to confirm the mode, the mode number will be flashed back to the user. To make the flashes easier to count we use a 2000 year old trick from the Romans, and group the flashes into groups of five (Like Roman Numerals).
For example mode 8 would be
FLASH, FLASH, FLASH, FLASH, FLASH (5 flashes)
pause 1 second
FLASH, FLASH, FLASH (three flashes)
pause 2 seconds
Then the light would demo mode 8 by sequencing through it.
Mode 14 would be
FLASH, FLASH, FLASH, FLASH, FLASH (five flashes)
pause 1 second
FLASH, FLASH, FLASH, FLASH, FLASH (five flashes)
pause 1 second
FLASH, FLASH, FLASH, FLASH (four flashes)
pause 2 second
Demo mode 14 by sequencing through it.
The table of available mode sequences would look something like this:
01. MED, LOW, HIGH, STROBE, SOS (Jetbeam C-LE and Fenix L0D default)
02. HIGH, LOW, MED, STROBE, SOS
03. LOW, MED, HIGH, STROBE, SOS
04. HIGH, MED, LOW, STROBE, SOS
05. MED, LOW, HIGH, STROBE
06. HIGH, LOW, MED, STROBE
07. LOW, MED, HIGH, STROBE
08. HIGH, MED, LOW, STROBE
09. MED, LOW, HIGH, SOS
10. HIGH, LOW, MED, SOS
11. LOW, MED, HIGH, SOS
12. HIGH, MED, LOW, SOS
13. LOW, HIGH
14. LOW, MED
15. MED, HIGH
Of course programming the desired mode sequence would be a pain without the book, but with the demo readout at the end of each selection, and only 15 sequences to pick from, you would hit it eventually.
I would think that you normally would not be changing mode sequences once you found one you liked, and if you did have two that you found useful, you would quickly memorize the numbers associated with them.