I thought about that issue nyself, and I came to the conclusion that the processing employed while the system analyzes JCL is very similar in some respects to compiling a program for execution.
First, the original JCL text is transformed to "internal text" by the converter. The converter runs as a JES2 subtask. Once the internal text has been created there is no further use of the original JCL text.
Next, the "internal text" is transformed into the various control blocks in the scheduler work area in the address space where the job will be run. This process is performed by the "interpreter" after the job has been selected for execution.
Once this process has completed the job is ready to run.
After all that I agree with NicC that the term "compile" JCL is inappropriate. You "run" a job that has JCL, or you "submit" a job containing JCL. You do not "compile" JCL as that implies the compiled output is saved for future use, which is not true with JCL. Once the job completes, the internal text and the contents of the scheduler work area are discarded.