Some developers use the "NOT" keyword in a unique fashion. Instead of only using it inside of a logic statement they take advantage of CFMX dynamic pound sign evaluation features to treat NOT like it is a function. This is misleading. NOT is not a function. It is an Operand that affects the logic of a statement. The only reason it seems like a function is that CFMX servers have a nifty feature that allows for you to put expressions between pound signs in output code. For example, if you put #1+3+5+8# in between cfoutput tags on a CFMX server the result would be the number 17 sent to the output buffer. That's nifty all right, but that's not all.
You could also do the following #(1+3+5+8) is 17# and the result would be the word YES. Notice how the "IF" is implied. The server simply uses looks at the results of the first part and compares it to the results of the second part. The pound signs and the cfoutputs dictate a scalar value be sent to the buffer, so the server sends YES. To illustrate, the following code is valide output in CFMX.
Where would you use this sort of dynamic evaluation output? Frankly it's not terribly useful - although I have seen some creative uses of it relating to form elements. However, I find it to be slightly bad form. One of the reasons is that your code will be incompatible with previous versions of Coldfusion. The code above will error out in all versions prior to CF. Another reason has to do with the "NOT" key word itself. If you write code like "#NOT(somevar)#" in an output you will leave the impression that NOT() is a function which is not the case. My preference would be to write a function and use it in it's place.