Ich halte das für einen Bug. Verständlich wäre eine Begrenzung ja nur, wenn der Rest immer abgeschnitten würde.
Ich muss nur noch soweit korrigieren, dass ich die Dateien nicht direkt lade sondern über den Umweg einer Stringlist.
RichEdit.Lines.Text := SL.Text;
Das MaxLength bei einem RichEdit beschränkt lediglich die Eingabe, lässt aber die Größe des Textbuffers wie gehabt. Das liegt aber in dem darunterliegenden Windows-Control und nicht an Delphi. Aus diesem Grund setzt Delphi in dem TRichEdit.Lines.LoadFromStream auch einen Wert von $7FFFFFF0. Wenn du den Inhalt über TRichEdit.Lines.Text setzt, passiert das eben nicht und MaxLength muss danach explizit gesetzt werden.
Ich glaube auch, daß MaxInt keine richtige Lösung ist, da das RichEdit intern auf maximal 64k beschränkt ist.