Dokud se budete držet Glibc nebo jiných "normálních" alokátorů (jemalloc, tcmalloc, atd.), stav haldy bude sdílen všemi knihovnami, takže budete moci uvolnit paměť přidělenou někde s malloc kdekoli chcete.
Teoreticky by se to dalo obejít. Například některá knihovna může být propojena s vlastní implementací malloc /free (pomocí triku se symbolovými skripty -Bsymbolic ), který má svou vlastní soukromou haldu, a proto nebude dobře interagovat s ostatními částmi vašeho programu. Ale nikdy jsem nic takového v reálném životě neviděl.
Kontejnery STL jsou založeny na malloc /free takže je možné je předávat/upravovat i přes hranice knihovny. Různé knihovny mohou být samozřejmě zkompilovány pomocí různých kompilátorů a různých nekompatibilních verzí STL (např. libstdc++, libcxx atd.), ale jejich typy kontejnerů C++ by byly různé a kompilátor by vám jednoduše nedovolil předávat je přes nekompatibilní moduly.