Design is the only issue I'm talking about. Not every table has unique elements, because not every Set of objects in the real world has unique elements.
Example: you have 30 tool packages you can rent out to customers, all the same. There is no distinction between them. There never will be a distinction between them. That is the whole point: they are the same in every way. A table which models these 30 tool packages does not need a primary key. You might feel safer with one, but that does not erase the fact that there is no *need* for one. All that matters is that we do not oversell them. A primary key does not assist in this process at all. Would it hurt to have one? Probably not. If you want the overhead, be my guest.
I can just see kindergarten class:
"Now if Jimmy has five apples, and we take away 3 apples.."
"Ooh, ooh, wait! Which three are we taking away?"
"It doesn't matter, just subtract three."
"But which three?"
"It doesn't matter!"
"Oh, it most certainly does. Why don't these apples have barcodes so we can tell them apart? Billy, go get the label maker! Susie, find us a workbench and clamp! Margaret, you start cutting the crystal for the laser...we need a reader..."
Overkill.