実際問題、VCのmallocの実装では、__sbh_threshold (デフォルトで1KB)以上の
アロケートに対してはHeapAllocを呼んでるし、GlobalAlloc ≒ HeapAllocなんで、
機能的に差はないかと。

あと、仮想メモリ機構と、プロセスメモリの関係で、実メモリは他のアプリでも
使えるし、(freeしたとしても)そのリニアメモリをほかのプロセスが使うことは
無いかとも思いますが。そのあたりの説明、ってのはどうなんでしょうかね。