In my experience developers are usually pretty consistent in estimating as long as they're in an environment that they have some experience. I don't mean they're usually right, I just mean that they're usually consistently optimistic or consistently pessimistic and by a relatively constant factor.
Also, and again as long as it's an environment your familiar with, the Donalds (the known unknowns) are usually relatively predictable i.e. you know the sort of things that will bite you and the sort of impact they have.
So I can usually estimate a project of 9-12 months duration to +/- a week or 2 as long as I've done at least a couple beforehand.
BTW that's not to say I always deliver on time. Depends entirely on who guessed the deadline and resourcing. But I can usually be able to be both annoying and smug by letting senior management know upfront how late they'll be and by how much.
Also worth pointing out that it's not because I work in a relatively static industry. Far from it.
But if you have systematic errors then it makes sense to account for them. I do find it amusing that, in technical matters, most devs do this without thinking but seem to have a blind spot when it comes to planning or general project management.