Type inference is improving. We can add a check to see if {{nil?}} is being applied to an expression of type {{clj-nil}} and warn, and likewise we can check if it is being applied to a type that cannot be {{clj-nil}} and also warn.
(One thing that could preclude this sort of thing is nil checks in tests.)