What is the reason that in measure fields in fact tables (dimensionally modeled data warehouses) NULL values are usually mapped as 0?
The main reason is that the database treats nulls differently from blanks or zeros, even though they look like blanks or zeros to the human eye.
Here is a link to an old design tip by Ralph Kimball on the same topic.
This blogpost talks about avoiding nulls in measures and gives a couple of suggestions.