Standard functionality in a legacy 20 year old system. We use our code and customer code for a product interchangeably. Should be standard functionality in Dynamics.
We also implemented something similar, basically making the looping prompt for return reason a single prompt and applying to all lines selected. Allowing specific return reasons to be set before select all, or deselected and reselected after. Would be nice to have a better option.