SQL Server Chaining Many-To-Many tables
The stacked keys approach (my name for it), where you carry the combination of keys through your tables, tends to pile up very quickly and become unwieldy. I think you are beginning to see this with the example in your question. 

So, if you don't want to have to drag every key around for all your relations, then then the answer to the surrogate key question is "yes".

There is a caveat, however. You want to make sure that within each of your lookup tables that you enforce uniqueness on the combinations of lookup table items (in SQL Server, use a UNIQUE KEY). For instance, from the example diagram below:

LocationLookup table:


PK: LocationLookupID
UK: LocationIDSales, LocationIDShip, LocationIDSend


ItemLookup table:


PK: ItemLookupID 
UK: LocationLookupID, ItemID


LevelLookup table: 


PK: LevelLookupID 
UK: ItemLookupID, LevelID



Look how much simpler life becomes when you do this!

Note: When using surrogate keys, I think it is always a good idea for every table to also have at least one unique key constraint.