Origins of the phrase "nil punning"?

When I first used McCcarthy’s lisp, we used nil in place of false. It took up two bytes less. Or we were just lazy.

I still use it for punting a result. Languages like Scala, Rust, and others are very proud to have Option or the like. Somehow they convince themselves that it is safer. I have yet to see code where it did anything more than take three lines of code for every semantic statement. Nil isn’t as useful as a non-signaling error return value. When you need one of those, you need a very domain specific error handling. In which case neither approach is appropriate.

The only time I’ve found the phrase useful is if the conversation is talking explicitly about the topic. It’s pretty much like air, you don’t think of it unless you stop breathing.