One of the refinements that was part of WordPress 3.3 is that posts that have certain characters within the post title are ignored thus, creating a cleaner permalink. Jeff Starr of Digging Into WordPress explains in better detail on what actually happens when you use those characters within the post title but further into the post, he also brings up the fact that WordPress can automatically detect duplicate post titles within the database and append a dash with a number to the end of the post title. However, as Dave Clements mentions in the comments, this could possibly lead to broken links:
I read something that’s a little concerning in your post. Let’s assume that I create test-post and then create test-post-2. I publish them both and then trash test-post. Are you saying that test-post-2 will automatically become test-post, potentially screwing up any links that have been published with the original permalink of test-post-2? Just wondering what impact this has.
Perhaps Otto could shed some light as to what happens regarding this scenario. Jeff Starr will be looking into it and will be reporting back his findings.
To the best of my knowledge, this doesn’t happen at all. Published post slugs don’t get altered automatically by any process.
Now, you might see this behavior for *drafts*, because a draft isn’t published yet and hasn’t had its slug finalized. But when a post is published, the slug is saved as part of the post in the post_name column, and it doesn’t get altered unless you manually alter it.
I just ran a quick test and published test-post and test-post-2 (both titles were “test post”). Deleting the first test-post didn’t alter the slug of the second one. Nor should it, I’d think.