It could be the case that the original programmer expected that $sb $eb might be changed somewhere else in the script at some point. If using the given values was critical to the subroutine then it makes sense for them to be enforced whenever the subroutine is called while letting them revert to their (possibly different) values afterwards.
If the sub calls other subs while it runs, then it is essential that local is used (in this scenario) so as to avoid broken things. If the values of these variables isn't modified anywhere else in the script though, and you have good reason to expect that they will not need to be altered at some later date, then do your best to remove the localising.