While the author admits that the documentation advises to use the traversal API (which gives the best performance) he goes with cypher over the REST interface which would never match a direct db connection. It's a fundamental flaw in his comparison.
https://github.com/jhb/neo4j-experiements/blob/master/query_...
There's no way that a single HTTP request is responsible for a difference in hundreds of seconds
(his benchmark code isn't really sound, but I don't see how this can affect a difference so striking)