I believe the algorithm employed when parsing the input stream is based primarly around $_.  If there is some modification to that value somewhere outside the main path, my belief is that the locally scoped $_ might (?) be overwritten.  Since $_ is the current scratchpad for input, and matching even relies on knowing from whence the last match occurred, perhaps the author wanted to make sure this value was not corrupted.    He may have also not foreseen other possible circumstances in which $_ might be corrupted and simply "didn't want to allow that bug to creep in".  Not sure if my explanation is correct, but that is my first guess without a deeper dive into the code.