Jetzt hast du mir ein interessanten Hinweis gegeben dass Delphi das Caption entsorgt wenn es keinen Wert hat.
Das Streaming-System unterdrückt alle Properties deren Wert dem Default entspricht. Dieser wird über die gleichnamige Direktive, ein entsprechendes Attribut oder einen impliziten Wert bestimmt. Bei Strings ist letzterer eben der Leerstring.