Earlier quoted context omitted.
While your tone might be a tad hyperbolic, I agree with your basic premise. If I could go back and tell my 30 year ago self one tip, it would be to use uuids over auto-increments. And this is back when that was expensive - in disk space and database time. Instead I'm stuck with my design, and as time has passed the real cost of auto-Inc has slowly revealed itself. What's interesting to me though is that this view is…
Can you give an example of an issue you faced with auto incrementing keys? Though I can imagine scenarios, the worst I've ever run into was maxing out the integer size, bit that was easily remedied.
A) data merging. Merging multiple data sets together with auto-Inc is tricky - especially in the case of related tables.
B) data distribution /replication - especially on and off phones - especially if phones are creating data records offline, then syncing later.
C) parent-child forms. Parent has to be committed to the dB before children can be added.
D) data imports - again especially related data.
I'm not doing justice in such a brief question, each item above deserves a whole exploration.