it sounds like you are pretty strong in the "Natural Keys" group...
No. I am strongly in the camp of choosing the appropriate keys for the task at hand.
In your eyes and experience, are there any compelling reasons to use "Derived Keys" over "Natural Keys"?
Performance. CLEARLY if you have millions of records then an INT key is going to gain a *LOT* over a VARCHAR key. Simple as that.
Even then, it depends on how hard you expect to hit the DB. That is, how many queries per minute or per second.
But for only a few thousand records? Even tens of thousands? And on a website that gets no more than, say 10 hits per minute? You'll never ever be able to see the performance difference.
I work on one site that gets over 300,000 database-related page hits per week. Say 48,000 on a typical day. That's 2,000 per hour, or more than one per second. And at least half of those queries (probably more like 75% of them) require a SQL WHERE clause that uses a KEY based on one or more VARCHAR columns. And we have essentially 100% uptime and very minimal response time.
PICK YOUR BATTLES CAREFULLY. If performance is not an issue (and I can't imagine it is, on your site), then choose the solution that works for you.