とりあえず手元にあったRuby1.6.1のソース見たけど、
Arrayのサイズが不足している場合、
現在のサイズ/2 か、 ARY_DEFAULT_SIZE(16) のうち大きい分だけ
増やすようになってるよ。毎度reallocしているというのは嘘。