I see a few reasons why this problem has been hard to crack:
1. A week or so of struggling to get a new box set up is acceptable if you're prepared to use it for at least a few months
2. Developers are very particular about environment choices, example: choosing between rbenv, rvm, chruby
3. Mac OS X and Windows developers lag behind in solid package managers, and virtualized dev environments have little (albeit growing) mindshare
I think the right solution will look something like containers/VMs via tools like Docker/Vagrant combined with configuration management tools like Chef/Puppet/Salt/Ansible. Configuration management hasn't taken off though yet among developers and is still mostly perceived as a sysadmin skillset.