In many contexts, nil is a special value meaning "no value" or similar. In many of those contexts, nil would not be a meaningful normal value anyway (or both meanings coincide), so there are no difficulties.
Mechanisms such as gethash already provide support for that behaviour, in form of a secondary return value that states whether the value was found (including a NIL that was found in the hashtable) or whether the value was not found.
What issue does your library solve that isn't already solved by the (much more standardized and popularized, I assume) mechanisms of returning an additional value for whether the object was found or not?