I've been cold-called to give references on people I found weak. Frankly, I'm not going to blurt out a lot of negative data to a stranger. It's either a legal or ethical liability, and what's in it for me to trash a colleague?
I've also gotten a reference call for someone I terminated and gave them a positive reference, conditioned on the fact that the new company wanted someone with exactly the skills my ex-employee had. I was very clear about why it didn't work out with us, but thought that that it was a very good fit for the new place, given how they described the role and responsibilities. Ex-employee was hired and is (as far as I know) doing very well and happy there.
I think the "I'm only allowed to confirm dates of employment" is a terrible drain on the mobility of good employees and allows higher mobility than should be the case of poor employees, so I don't participate.