当時の様子は知らないし、同じくキューでない配列にも普通にpop/shiftは使うけど
配列から取り除くことが作用ではなく副作用になる場合以外、
「配列から取り除く(ついでに値を得る)」ではなく
「値を得る(ついでに取り除く)」だと思ってるとミスするという話かと。

def get_first(ary)
 ary.shift
end
ary = [1,2,3]
put get_first(ary) # aryが破壊される