Почему данные хранятся в массиве?
предположу, что в целях экономии ресурсов - зачем методу каждый раз бегать за новым аргументом и выделять под него отдельный кусок памяти, если можно поместить все в один массив и разобрать его уже на месте вызова метода. Если аргументов, условно, будет 1.000.000, то проще их все забрать одним действием, чем повторять одно и то же 1.000.000 раз. Я так предполагаю. А вам вообще это зачем? Я имею ввиду понимание руби под капотом на текущей стадии изучения языка.