Why do we need surrogate keys?

In the course it’s emphasized that we should avoid storing original keys in our data modeling and instead fashion surrogate_keys to avoid coupling original domain with our analytics domain. I understand that analytics domain would be long living while original (transactional) domain might change keys (though in reality it isn’t done so much in practice). My question then is what do we really gain by surrogation ? 1 argument (in favor) could be performance, which I get, but we lose information to refer back to original domain completely ? For instance, if we store customer_key in surrogate form and later in analytics, we get to know there’s something odd by a customer, how do we refer back to the original customer that surrogate key was generated from ? Hashing is 1 way, so that information is lost. 1 way is to store both keys (orig and surr) and use surrogate for efficient joins while still retaining original. This seems like best of both the tradeoffs, but it isn’t covered in the course.

Anyone else has any good mental models around this topic ?