Currently condp takes the value of the first argument pred. This has two disadvantages:
It won't allow macros to be used as the first argument
It will be less efficient since the function calls can't be inlined anymore (common idiom: condp = x ...)
If pred is a symbol the let binding can be avoided. This would properly inline = which is common.