For a number of users, the originals themselves were deleted from the iPhoto library package. It was not just a case of the database being corrupted and the files remaining intact.I think this is correct.
Today, I installed iLife 11. When I ran it and updated my photos, i had about a half dozen events that did not have any pictures or just a few of them. The "not visible" pictures in these troubled events showed up as black boxes and appeared to be "missing".
I re-imported the missing pictures (and all of the pictures in the original event) from these events from my SuperDuper backup to iPhoto 9. iPhoto asked me if I wanted to import the "duplicates". I did this and now I had a new event for this import. I did this for all the troubled events. Then I deleted the blank or mostly blank events. These deleted black boxes show up as visible jpegs in the trash.
So yes, I believe the links are missing, not the originals.
Repairing permissions is almost never necessary, gives you a false sense of security, and does not need to be done as a matter of course. (The "repair permissions" tool in Disk Utility is rather unfortunately named, as it has absolutely no effect on user data.)I have only been a mac user for about 3 years, one of the first things I was taught was to repair permissions before an update and also after to help prevent any issues. That being said, apparently the iPhoto permissions are not effected by something like Disk Utility or Onyx. Why else would they build into iPhoto a way of repairing permission issues if it was not necessary at some point in time? In saying that I have no idea what actually causes them to get messed up in the first place?
Permission errors typically only occur due to the user explicitly setting them to something they shouldn't (e.g. being foolish enough to use some unfamiliar terminal command they read on a website like Mac OS X Hints) or a software bug that sets them incorrectly. In any case, the iPhoto library upgrade process should have been robust enough to handle them, and Apple alone should be blamed for the data loss that many people ran into. It's ludicrous to blame the user for data loss in this instance.