そのへんはアロケータの実装次第だわな。
標準のアロケータはバッファが足りなくなると都度2倍の領域を新たに確保し、コピーした後古い領域を削除する。
実際に利用されてる領域の最大約3倍ものメモリが一時的に割り当てられるわけだ。

アロケータを自前で定義すれば任意の領域に確保することだって可能になる。
まぁ、組み込み系なんかを想定した仕様なんだろうけど。