I see your perspective, but I disagree that vi speed is mostly theoretical.
1. you have to check if you're in insert mode or not.
You should always be in normal mode unless you're actively inserting, so this shouldn't be something you really have to think about.
2. you have to know you want to go down 5 lines....
Since your example assumes that line numbers are visible, you could just type vnG, where n is the line number you're trying to put the cursor before. No subtraction needed. Depending of the shape of the text, there are probably other intuitive approaches as well.
Does the "tao" of vi take time to internalize? Sure. But once you've done that, you can be blazing fast.
1. you have to check if you're in insert mode or not.
You should always be in normal mode unless you're actively inserting, so this shouldn't be something you really have to think about.
2. you have to know you want to go down 5 lines....
Since your example assumes that line numbers are visible, you could just type vnG, where n is the line number you're trying to put the cursor before. No subtraction needed. Depending of the shape of the text, there are probably other intuitive approaches as well.
Does the "tao" of vi take time to internalize? Sure. But once you've done that, you can be blazing fast.