The label clause has declined in importance over the years. LABEL RECORDS STANDARD for files, LABEL RECORDS OMITTED for spool output is pretty much all that I've seen for quite a few years.
As the manual says, the DATA RECORDS clause is syntax checked but that's it -- not used any more.
To understand RECORD CONTAINS and BLOCK CONTAINS, you must first understand that the system has a specific order for acquiring information about a data set. The first reference will be the program. If some values are not supplied by the program, the system then checks the JCL. If some values are not supplied by the program or JCL, then the dataset itself is checked to supply the missing values. So if you specify RECORD CONTAINS or BLOCK CONTAINS, they will override anything you specify in the JCL. This allows the programmer better control in the code over the physical attributes of the file. If you specify RECORD CONTAINS 100 TO 200 CHARACTERS in your program, and the JCL has DCB=(RECFM=FB,LRECL=200,BLKSIZE=27800) -- guess what the data set gets defined as?