If a function takes a parameter whose only significance is in whether it's nil or non-nil, is there any reason not to pass it a well-named symbol to clarify what's going on in the calling code?
For example, add-to-list
takes an optional APPEND argument, which if non-nil adds the element to the end of the list rather than the beginning. I could write,
(add-to-list my-list "x" t)
but I think it would be clearer if I wrote
(add-to-list my-list "x" 'append)
or
(add-to-list my-list "x" :append)
I like that last one best, but is that just not done? I could actually see it being confusing since it makes it look like a keyword argument and it's not really.