Simply because I didn't state "for all and every" doesn't invalidate my point, nor does it support yours as true - further, "heavily favored" suffers from the same problem. The point is, there's a system which takes as input formatted in a specification (a program) and some transformed output (a set of actions to be taken or another program input for another compiler). So, there you go. If a hot dog on a bun could be considered a sandwich, then a CPU could be considered to be a compiler. shrug disagree all you like.
If you say X is Y, but it’s not true for all X then the statement is false. Ie: “All integers are even.” is false.
As to your point that’s not what CPU’s do though, they have both a set of instructions and a set of IO with the outside world. A compiler always results in the same output from a given set of instructions, but with CPU’s you can run the same code and get wildly different output due to that IO.
The only way you can call a CPU a compiler is as a subset of its capabilities. If they they have internal microcodes where a given instruction gets translated into a different internal representation, but that’s not the end it also executes those microcodes.