While the set all steps is a nice feature, a tester will often have to set multiple results for steps in a test case. While most may pass as they progress through the test case, some they may need to skip, some they can’t run, some fail, etc.
In the example of a 50 step test case, if the tester works through with the hope of being able to set all to Pass, but has to skip step 18 then passes some more and fails at step 26 and after a few more passes fails again at 41, the set all option isn’t a great one.
When a tester sets a step (e.g. step 18) to a result, the system could set all the blank results above to Pass. Those steps most likely passed in order for the tester to make it that far down the steps. Ditto when they fail step 26, back-fill all the blank steps to the last set result to Pass.