Hello Adolfo,
From an academic perspective, comparing "traversal" with "join" makes little sense since that is comparing apples to oranges (or is it pearls, or pears?) as you said.
You can map a graph into an RDBMS and then execute a traversal as a join query. In fact, most of the early RDF databases (which are essentially graph databases) did just that. However, we noticed that traversals often lead to complex join queries (i.e. very many joins) and that RDBMS aren't very good at executing those. So, we set out to engineer specific graph engines.
There is a whole class of RDF databases that start with the RDBMS approach, but get rid of the triple or edge table and build a bunch of covering indexes (SPO, OPS, etc). This is essentially still a JOIN approach but the system is more tuned for executing joins with the covering indexes, no extra table and better join algorithms (there is a whole literature on join optimization for RDF that equally applies to graphs).
Next, graph databases are a class of databases that materialize the join. Hence, instead of executing a (potentially expensive) join, we have a pointers to the other vertices. So, to find all neighbors of a vertex, we follow those pointers. That's not unlike network databases from the 60s. Now, we have the extra benefit that we have enough RAM to load the entire graph in RAM and therefore the materialized joins turn into an object graph. That's the approach Trinity and Neo4j take.
So, bottom line is that most graph databases either execute joins or materialize the join and pre-load it into memory for performance.
However, I believe there is an academic case to be made for graph databases. See, join processing ultimately relies on these big index structures (the SPO, OPS, etc indexes).
Those work fine for smaller graphs, but when you have billions of edges, the log N factor in building and maintaining those indexes starts to hurt you - not to mention the fact that building distributed index structures of this nature is really hard.
Likewise, materializing all data into memory does not scale either - or if it does it is very expensive to do so.
So, for large scale graph databases, you need index structures that allow "stale" data to flow to cheap, secondary memory and quickly grab the important stuff but without building global index structures. We believe that the answer to that problem are vertex centric indexes which is what Titan is all about.
Cheers,
Matthias