Only displaying the address — If someone else uses this code, your mileage may vary.
Not crashing if for whatever reason we're trying to access something out of bound. Instead showing a "suspicious" empty row.
Not crashing when tapping on a row which is out of bound (bounds of the array backing it) for whatever reason. Not doing anything should be a hint to the developer (actually myself in this case…)
Using the much smarter ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering instead of ABAddressBookCopyArrayOfAllPeople allows to not do the sorting manually, which is probably a huge performance optimization and will avoid some inexplicable (but most probably memory related!) crashes. It also avoids having duplicates when having multiple sources and I prefer no to merge the different sources (like mentioned at http://stackoverflow.com/questions/4067542/getting-merged-unified-entries-from-abaddressbook) for obvious performance reasons.