It's not just a tuple of two arbitrary values - it's a range with a very natural sequence of "every date in the range".
I believe it's useful to be able to write:
foreach (var date in new DateInterval(start, end))
{
}
Note that the regular Interval doesn't implement IEnumerable<Instant> because there isn't any natural sequence - it would make sense to take "each second in the interval" or "each minute in the interval" for example. But as DateInterval is between discrete values (dates) it represents an obvious sequence.
I'm sorry to hear that NHibernate wants to do unfortunate things automatically with it, but I think overall it's better to have the functionality than not - and I certainly don't think it's worth breaking backward compatibility by removing it for 3.0.
Jon