Having a nan has other purposes beside initialization values. You can represent missing values, like C# nullable ints (that are bigger in size, 8 bytes, I think).
You're saying C# nullable ints require more memory than native ints, but just how would you represent int.nan with 32 bits?
The correct solution would be to add nullable value types as additional types. It'd be nice if we could have non-nullable object references at the same time.
But figuring out and agreeing on a concrete design seems to be too complicated, and D will never have it. "Stop dreaming."
