Bug in `if(<varname> STREQUAL <string>)`

Thanks, yes this is just a really nuissence, modern cmake should really leave these old habits. They make CMake extremely bug prone!
A function which in some cases does unsetting is just plain wrong and is the opposite of what the function says to do.

@ben.boeckel Could we not have a new policy which can be set, such that this set function behaves sane? Is there any resistance?