村上です。

> 「何であろうとArrayに変更」する場合に期待する挙動は何でしょ
> う。たとえば、すでにArrayであった場合はそのままというのは自
> 明でしょうけど、
> 
>   * Enumerableであった場合は?
>   * nilは?
>   * 整数/文字列は?
略
> その「1つの値」が配列だったらどうするんでしょう?

うっ、整数/文字列の時しか考えてませんでした。

Hashと組み合わせて、
if a_hash[key]
    *a_hash[key] = a_hash[key]
    a_hash[key] |= new_value
else
    a_hash[key] = new_value
end

と、何回かやった場合に、入れた値が1つだった場合は、new_valueがそのまま、
2つ以上の時は入れた値が重複しない配列がほしかったわけです。

> |もちろん、一つでもArrayで扱うのがいちばんスッキリするのでしょうけれど。
> 
> そう思います。

今度からそうします。

お手数をおかけしました。