One thing to note is that while it's true "keywords can be used as functions" they can only really do one thing, which is get values from maps. That is to say, the keyword-function :foo is equivalent to the function #(get % foo). The function :foo has no relationship with the function foo, if it is defined. I hope that makes sense!
So, to some approximation, only use keywords as functions as a shorthand for getting values from maps. As others have pointed out, although the keyword :require is in function position above, that code never actually gets executed - it's just data for the ns macro. This can be one of the more confusing things to get straight ...
Jony