find_program docs don't say that it's a no-op if <VAR> is already set
Title says all. At least, I don't see the information there. It should really appear in this paragraph:
A cache entry, or a normal variable if
NO_CACHE
is specified, named by<VAR>
is created to store the result of this command. If the program is found the result is stored in the variable and the search will not be repeated unless the variable is cleared. If nothing is found, the result will be<VAR>-NOTFOUND
.