Excellent points everywhere. I didn’t realize there were performance differences underlying case vs condp. My original impression of case
was that it was a poor-man’s condp. Your answers have shown that I was right – but as a result of its poverty, case
is both cognitively and computationally cheaper, which can be a good thing.
As for why I thought it was non-lispy, it was because I saw it as a hold-over that does the same thing as condp, but was made to favor visitors from other languages who used case-switch
in C or Java or wherever. I think this thread has made some good refutations of that idea, though. The resultant question becomes “When should condp be used?” and I suppose the answer is, “whenever the branch is more complex than a simple equality check”