Scheinbar ist das so und zwar nicht nur bei Delphis GetMem sondern bei so ziemlich allen Standard-Speicher-Allozier-Funktionen
jeglicher Programmiersprachen.
Das Problem ist auch, dass der Speicher für GetDIBits mit einem Aufruf von VirtualAlloc reserviert werden muss und GetMem benutzt scheinbar mehrere Aufrufe. (Ob es VirtualAlloc ist weiß ich nicht.)
Das ein Bitmap ein unfragmentiertes Stück Speicher braucht mag sinnvoll sein. Aber wenn man solch ein unfragmentiertes Stück Speicher mit keiner Standard-Speicher-Allozier-Funktion jeglicher Programmiersprachen bekommt, dann wäre das doch wenigstens ein Mini-Kommentar in der Dokumentation wert, oder?