The internal buffer is just a large byte array of the raw data for each channel for each frame. It's completely "in memory" and thus has no effect on what's on the disk. It is "perfectly sized" based on the the number of frames of the sequence and the number of channels.
When an XML sequence is opened, one of three things happens:
1) If there is no fseq file present matching the XML, the internal buffer is created as above. It's completely initialized to blank data.
2) If there is an fseq file present, but it doesn't match the right "size", then a new buffer is created with blank data. If you change the length of a sequence (shorten), change the timing (50ms->25ms), or change the number of channels (added outputs, etc....), then this would be triggered.
3) If the fseq is present and all the right params match, the internal buffer is loaded with the contents.
If you are loading a sequence and getting blank data in the preview, you've likely hit #1 or #2. Simple solution is to just re-render and re-save. That should create a new fseq with up-to-date information and rendered data.