Apparently, you cannot use a null for a key, even if your key is a nullable type.
This code:
var nullableBoolLabels = new System.Collect         
        
Ah, the problems of generic code. Consider this block via Reflector:
private void Insert(TKey key, TValue value, bool add)
{
    int freeList;
    if (key == null)
    {
        ThrowHelper.ThrowArgumentNullException(ExceptionArgument.key);
    }
There is no way to rewrite this code to say "Nullable nulls are allowed, but don't allow reference types to be null".
Ok, so how ab out not allowing TKey to be a "bool?". Well again, there is nothing in the C# language that would allow you to say that.