I have found where it is called with a `None`.

`trait_handlers.py:621` in `TraitType.clone()`, there is the following code:
```python
        if default_value is not Missing:
            new.default_value = default_value
            if self.validate is not None:
                try:
                    new.default_value = self.validate( None, None,
                                                       default_value )
                except:
                    pass
```

It explicitly calls with a `None`, but has a bare `except` so you will never see an error.