find command is very old, dating back to Unix V5. At the time, the command line syntax conventions weren't as firmly established as they are now. A few old programs deviate from these conventions.
find didn't have options. It expected the first argument to be a directory to traverse, and the remaining arguments to be an expression. Evaluating the expression for each file indicates whether this file should be printed (or more generally indicates what to do with the file). The expression is made from operators and their operands. Find operators begin with
- (except for a few punctuation symbols) for the same reason options begin with
-: because it doesn't have any special meaning in the shell so it's easy to type, yet it is distinguishable from file names because reasonable people don't start a file name with
Operators aren't options. Why? Because they don't have the syntax of options… They have the spelling of options (beginning with
-) but they're used in a different context.
find acquired a few things that could be considered options — global settings like
-depth that don't really have any business being in the expression. These were put in the expression for consistency, because
find didn't have options.
find acquired a few options, with the usual option syntax: options before non-options. This was done to be consistent with many other programs that support the same options (
-L to configure symlink behavior).
The synopsis tells you that
-L and the like can come first, then the path(s), then the expression. The synopsis syntax can't always express all possibilities. If it was complete, it would be unreadable, so all you know is that it gives one possibility. You need to read further if you want to know exactly what is possible and what isn't. For example,
-L, etc. can come in any order, as long as they're before the path.