Yes - Unfortunately if you are using a program with a number of subroutine calls, the Code window does not show the Sub Routine until it is called, therefore the "Run from Here" is difficult to implement.
What you do not say is if the Sub-routine calls are all to the same sub-routine or not. I was running a program a few weeks ago that consisted of 10 calls to different subroutines, each subroutine being about 450 lines long, but they all started where the previous one left off.
If you are just calling a the same sub-routine then you should know what it is going to do - i.e. where it is going to start, and position your axis in an appropriate spot. What you need to do then is pick a line in the MAIN program just immediately before the call to the sub-routine, that positions the three axis (say a G0 move) and run from there. The difficulty will be if your program is just using positional information, rather than the full G0 or G1 instruction, because the machine must have a full line of code if it is to start reliably.
The machine will pick up it's position, then jump to the sub-routine. I suppose if it is a long sub-routine, rather than repeat it all, you could then stop (NOT an E-stop) with a controlled stop, and then advance through the sub-routine (the machine will have retained it's positional information) which will by now be showing on the window, to a more appropriate position and run again from there.
It seems a bit messy, but that is the only way I can think of.