Mr. Sample's summary is excellent. Variable length records may prove to be more difficult to handle in Cobol than fixed length records, but don't let that dissuade you.
Most of my work has been in Assembler, and I use variable length records as a default, fixed length records only where they make a lot of sense, especially if the dataset is going to other programs after being sorted. If I had encountered Mr. Sample's example of a data structure, believe me, I would use variable length records. It takes quite a long time to pass over 1 billion essentially unused bytes in a dataset; better they're not there!