I like the spirit of this thread. Kudos.
What trends are you seeing that you think should be more widely adopted?
Recruiters that behave more like community-managers / outreach-coordinators. Roles whose purpose is to engage with (and build relationships with) the developer-community as a whole, not just pluck talent ad-hoc.
What practices could promote a better dialogue between recruiters and candidates?
I find it easier to engage with a recruiter (instead of circumventing them) when they personally offer me something of value. For example: The recruiter who says "if you apply online you'll just get a phone interview, but if you go through me I'll get you a 1-on-1 lunch with the CTO". When they start off with a clear value-proposition like that, then the headaches and bureaucracy of dealing with them are much easier to stomach.
How can we solve for some of these problems using the technology we have at hand?
I wish the application process could be a bit more standardized for the early stages (like the college / grad-school admissions process). I think it'd be an interesting thought-experiment to envision a standard-format for application packages. Imagine a package.json ~esque file that pulled in your github repos, recommendations, personal statements, etc. I wonder what else would be necessary.
It seems like the beginning stages of working with a recruiter are always the same ("where'd you go to school?", "show me some stuff you've done", "have you heard of Big O notation?", etc etc). I wish we could just put together one standard packet, throw it up somewhere online, and let the recruiters line up interviews for us. If that would allow the recruiters to contact us with an "I've got you an interview" type of message instead of a "hey let's talk" message, I'd be all for it.