Damit du mit den Methoden eines Streams, und Allem was Streams unterstützt, im Speicher von irgendwas Anderem rumwurschteln kannst.
Also du bekommst z.B. von einer
API einen Buffer (x Bytes) und kannst direkt mit diesem Speicher (ohne umzukopieren) das dennoch als Stream verarbeiten.
Du kannst damit auch in einem anderen TMemoryStream/TBytesStream (in dessen Speicher oder "sicher" nur einem Teil davon) mit einem weiteren Stream arbeiten usw.
Das macht es Einfacher Dinge zu verschachteln und spart Arbeit/Speicher ... z.B. wenn in einem großen Stream mehrere Bilde drin stecken, dann auf den gewünschten Teil den PointerStream drauf und das dann an LoadFromStream von irgendwas, ohne vorher umzukopieren.