Since cl65 was created to simplify the use of the cc65 development package, it tries to be smart about several things.
The command line is parsed from left to right, and the actual processing tool (compiler, assembler, ...) is invoked whenever a file name is encountered. This means that only the options to the left of a file name are in effect when this file is processed. It does also mean that you're able to specify different options for different files on the command line. As an example.
cl65 -Oirs main.c -O -g module.c
translates main.c with full optimization and module.c with less optimization and debug info enabled.
The type of an input file is derived from its extension:
Please note that the program cannot handle input files with unknown file extensions.