I'm an IT development contractor, and if I had a dollar for every ridiculous req I've seen come across my desk I would have retired long ago.
It's common to see a requirement for 10 years of experience in a technology that's only existed for 5. It's equally common to see requirements for proficiency in technologies that, when actually examining the architecture, have no business being on the req document (i.e. asking for additional proficiency in VB when the entire codebase is in Java. I mean, sure, there's an argument to be made for skills-flexibility and such, but at the end of the day you still need a Java programmer)
Often, it's politics and/or money - the project leads have grand plans for upgrades and improvements, but the budget and timeline ends up being tight and the edicts from management-on-high become "just paste over the cracks for now" - and then "for now" balloons to 10 years.
Worse still, it often comes down to ego. A requirement could be perfectly acceptable - hey, you want someone with Hibernate experience? Awesome. But then some lead developer who's owned the non-hibernate ORM code for a decade gets butthurt and blocks every attempt to change things, as though it was some personal attack.
The upshot is that it ends up costing a lot of money for people - they write these outrageous requirement documents and end up paying the hefty sums that someone who fits the bill can command, and then have him or her doing the kind of work that a much cheaper junior dev could be doing.