Earlier versions of COBOL had a difference in the way the data was stored/accessed when you use a 77 and 01 level.
77 level was boundary aligned and 01 level was not boundary aligned .
Boundary alignment used to dictate the number of bytes used for actual storage, addressability and fetching.
The minimum fetch unit used to be a word and so even if your character size is less than a word all the bytes in the word would be used for storing the value. There was no impact on the fetch time for the character variables .
In addition to the storage , when the declaration is for numeric values and if the numeric values are used in any kind of intensive computation , the declaration types would have an impact on the CPU time if they were declared at 01 level because of the non-alignment .
In MVS COBOL and VS COBOL II 01 level variables are also boundary aligned and have been hence there is no difference .