Seems expected to me. AFAIK clippy is just one linter (binary) containing many lints. Not a collection of linters. Just imagine the overhead of having to run hundreds of independend binaries, presumably independently parsing and pre-analyzing your Rust code, every time you run cargo clippy.
We could imagine Clippy lints being built like proc-macros, where they are built as separate dylibs and are loaded and run by Clippy, giving them access to a shared pre-analyzed input. (And I read that the dylint tool works just like that.) But Clippy doesn't in fact work that way.