S95: with the toggle switch on my 3rd try i created 10 distinct zoom steps, and i can repeat that now by very short taps to the switch
however usually i only get 9..i thought that was the maximum of the s95. (28 31 34 39 44 49 59 69 84 105)
what i do see with the toggle and not with the ring is values in between, like 41 when moving between 39 and 44.
but haven't got it to stay stuck on 41 yet.
a few times a tap did not lead to a change, but that might be me tapping too lightly.
and with the ring i only have 5 to choose from. (28, 34, 49, 84, 105) i do see different values during zoom, but too quick changing to read while the time it zooms per step is longer.
they appear to be not halfway but closer to the setting it's going for.
with a lua script that sets zoom per 10% (and calls a zoom step) i see the next value before it zooms back to the set value, so not 41 when moving between 39 and 44, but 34 or 49 before it zooms back to the chosen value.
well, al least it looks a bit different when using a script or the toggle switch.
after an hour of testing different ways to zoom i have no added info, just a thought: maybe canon uses a non linear motor drive for the zoom.