Будет ли большой std::vector быстрее, чем std::vectorstd::vector?
Да. Потому что локальность памяти и меньше разыменовываний.

в vector<vector> это фактически указатель на массив указателей. Строки раскиданны по памяти как попало и при обращении к ячейке будет лишнее обращение к памяти, чтобы получить адрес строки.

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