I worked on implementing a backend for google cayley, the issue is the iterators abstract how a backend actually works so it becomes harder to optimise without introducing tighter coupling, also imho effort is better spent on more important things like high availability etc. I haven't touched it in a while so i can't speak re. its performance today.
I've never worked with Neo4j but it's a stable and matured product with numerous large scale deployments, enough said. :)