I think what has been lost in all this discussion is that the purpose of the start/end dates is to make QUERYING the data easier. a one-time hit during ELT (if there is a performance hit) is significantly preferable to an every-time hit during querying.
that, plus the ability to keep discontinuous date ranges (e.g. start date of row 3 is greater than end date of row 2, or end date of the final row for a key's value is before current_timestamp), supports Kimball's design.
That storing an additional date column "takes up too much space" is a flawed argument: disk space is cheap.