Seems, all implementations of ColumnInterface::dbTypecast() checks value on null and ExpressionInterface and return it as is for those values:
if ($value === null || $value instanceof ExpressionInterface) {
return $value;
}
We can check it before call dbTypecast() and simplify simplify both existing implementations and the creation of custom ones.