In the VTOC, the data set BLKSIZE is taken from a field with label DS1BLKL.
DS1BLKL DS XL2 BLOCK LENGTH (TYPE F RECORDS), @L3C
* OR MAX BLKSIZE (U OR V RECORDS) @L3A
The usual copy utilities seldom have a problem with an output BLKSIZE=0, they usually copy the input BLKSIZE to the output BLKSIZE or they let system determined BLKSIZE populate the field. Obviously they will have a problem with input BLKSIZE=0. It is easy to recreate this problem with JCL like this.
//A EXEC PGM=IEFBR14
//INPUT DD DISP=(MOD,PASS),SPACE=(TRK,(1,1)),
// DCB=(RECFM=FB,LRECL=0)
//B EXEC PGM=aprogram
//INPUT DD DISP=(OLD,PASS),DSN=*.A.INPUT
I'm sure many of us can deduce how to recreate this in real world situations.