I'm going out on a limb here (i.e. not checking my facts before I open my mouth) but I think a primary key should designate a unique value. I can think of a lot of reasons it would be good to have a unique field to select on for edits, deletes, table relationships, etc.
BUT: I've got a primary key in my table that's supposed to be auto_increment, and it's allowing me (actually, doing it for me) to insert zeros. I've got several records with 0 in the auto_increment field which the books tell me is against the rules. So to answer your question: heck, I don't know. Sounds to me like if you can design your stuff without primary keys and it works the way you want it to, never mind the bollocks and go for broke.
And if you have any idea why I could be getting this kind of behavior from my auto_increment column, I'd LOVE to hear it.
🙂