in reply to Silly question about function args
I'd say use the list assignment, because if your "normal" way of declaring arguments is to use shift, you're wasting a lot of effort. @_ is more concise, and less likely to be mis-typed.
I think it's appropriate to save shift for those special cases where the modified @_ is going to be used, something which is certainly not most of the time.