Thanks for the replies. As a follow-up, how about bridge tables? Normally if you would model multi-valued dimensions with a bridge table, you will have a group key and a key to the outrigger table/dimension. The group key unlike a regular dimension surrogate key is obviously not unique.
Would it make sense using the same arguments for using surrogate keys in fact tables (ETL, auditing) to create surrogate key for bridge tables or creating one overkill and just unnecessary overhead?