This is a pretty dated article, but the concept is fundamental to traditional data warehousing. I was browsing around and felt like I should comment on this for anyone new looking around for an implementation of SCD 2.
I'm wondering if you've had a chance to try your solution at scale. The end date of an SCD record is valuable and frequently plays a critical role during ETL (as many have commented). I believe that having less columns or removing redundant data is NOT as important as overall performance, in this case.
To create this column on demand is unreasonable especially since the customer dimension, in your example, must be joined to itself. For many companies, this is the largest dimension in a solution. It is prudent to materialize transaction time and/or valid time attributes for performance reasons. While you may be able to tune your self-joining query, it will never provide better performance than a materialized attribute.