Some considerations before you proceed....
The S line command has at least one important use case.
If you have a series of excluded line blocks with intervening normal lines and you've issued HIDE ON, you can, naturally, no longer see the excluded line markers.
This means that line commands F and L, are unavailable (eg: msg "FIRST allowed on excldued lines only")
Show overcomes this but still fails with msg "Repeat value extends past the last line - line <nnnn>" if you enter too high a 'repeat value'.
In general, I don't understand why there needs to be a restriction to the size of the 'repeat value' for the SHOW command or indeed any comamnd.
If the number is too big, just do all the lines that follow the line with the S command.
I note the same applies to other commands too, eg. X99 complains if there are only 60 lines left in the file.
I'm unsure when this started, but I think it the 'end-of-file' line count limit is rather strict.
If the idea is to avoid accidentally affecting many more lines than intended, there is a "line command repeat limit" setting on Options - General, not to mention UNDO.
Similarly, given the HIDE ON scenario, perhaps F and L do not need to be restricted to "excluded lines only".
They do no harm if issued on visible lines and would be jolly useful when HIDE ON is in effect, to allow the user to peek/step into the darkness, without having to issue HIDE OFF first.
The SI line command (like its ISPF ancester) is/was intended to help track down 'open' structures, eg. an IF without matching ENDIF, etc., albeit based purely on line indentation.
This depends entirely in programmer coding discipline but can still be helpful.
SI does works as long as the 'repeat value' is chosen wisely and that's tricky because it seems to be interpreted as a count of "the number of lines to be shown", instead of being a count of "the number of lines to be examined".
Chose the right value and the indentation structure becomes beautifully apparent.
Chose poorly, and SI will either display irrelevant lines to make up the count, or stop too early.
The choice is tricky because
(a) you can't see the code in the excluded block and
(b) you'd need to know how many indentation changes there are in the code block.
So SI seems to be a case of "close but no cigar".
Maybe the easiest way to fix it is to have no 'repeat value' for SI at all. It simply works through the entire block of excluded lines. Alternatively, change the 'repeat value' to work as suggested above.
UPDATE:
It occurs to me that SI miht be more useful if it were allowed on 'visible lines'.
Entering SI75 on the first line of a visible 75-line code block would effectively exclude the block and then do the SI command over it, showing the indetation structure without intervening lines.
Might even be an argument for a SII...SII construct.
\Update