однако что случиться, если строка одна и двухгиговая.
Прежде всего может не хватить ОЗУ, мне для декомпилятора написанного на Python понадобилось десять гигабайт, а было бы декомпилируемое приложение очень большим, может и новый компьютер покупать бы потребовалось, хотя если рассуждать то зачем ему все держать в ОЗУ, это просто плохое его качество.
А также с размером возрастает риск исключительной ситуации, конечно файловая система это не сеть чтобы так беспокоиться о разных "обрывах", но иногда важно.
Все остальное (быстродействие или локальные проблемы ОС или вашего Ruby) - смотрите соответственно свою ОС и Ruby, если он использует буферное чтение то вроде бы ОС не должна ограничивать размер, если проблемы с быстродействием чтения - попробуйте вызов API ОС и сравните мсек, если сильно разные то придется как-то обращаться к API напрямую и т.п., в конце-концов не так и сложно просто создать 1-2 ГБ файл и проверить.