i come from the stone age where suitescript 1 didnt even have yielding. Passing state through script parameters, files, or custom records is primitive and requires you to write your scripts a certain way (generally involves finding a safe place to reschedule). nlapiYieldScript made state easier, but it was easier to write long running scripts that could be interrupted by server restarts. It created weird behaviors where scripts stopped processing, or restarted in the middle.
If you are going to use certain patterns, or have to worry about server interruptions, use map/reduce scripts