Profiling has shown that depgraph._slot_operator_update_probe is repeating the same use_reduce calls for the same package. I have a patch which implements memoization of use_reduce results for this function, and it significantly improves performance of dependency calculations. With memoization, 'emerge -puvDN @world' on one of my computers takes 22.4% less time, and results in 13.5% fewer use_reduce calls.
My patch is in the following branch: https://github.com/zmedico/portage/tree/bug_529660 I've posted it for review here: http://thread.gmane.org/gmane.linux.gentoo.portage.devel/4814
This is in the master branch: https://github.com/gentoo/portage/commit/9ba4f2aa6a2755a73fb652b4557919047d649fd1
Apparently this patch is in 2.2.15. Thanks!