If you use a normal integer key, you assume the burden of generating unique keys. If there is more than one thread/process adding records to the table, this is non-trivial.
Another consideration is performance: the database engine can generate auto-incremented keys much faster than user-level code can come up with unique keys.
The upside is that you could make the keys hard(er) to predict. Whether this actually buys you anything is open to debate.