CMake already warns when a variable set on the command line is not subsequently used by the program. Cache entries also get rendered in the ccmake and cmake-gui interfaces, which make spelling a name wrong impossible.
CMake also allows you to dereference unset variables and specifies the semantics: you get an empty string. So what it would mean for a variable to be “misspelled” in the first place is unclear.