Generally having a value is more semantically correct, and clearer. Let's take the message_count field as an example which is an unsigned int, if that allowed null then essentially you could have values > 0 which are valid, 0 would be valid and null would be valid. In that particular example, what use is null? What does it mean when compared to 0? Does it mean 0? If it means 0 why not just use zero? etc.
Generally the only time in XF where we allow nulls is for fields where a default value isn't permitted (blobs, text fields etc) but even then we use the entity value to set a default value.
There can be use cases for using null or where null is more semantically correct, but otherwise if you can use a semantically correct default value, why not?