It depends on the backend implementation.
* TinkerGraph is fully in-memory so everything "is loaded."
* Neo4j maintains the graph in-memory as well, but when pulling from disk, the properties are grabbed only when requested (I believe).
* Titan will retrieve properties when requested (but again, if the vertex/properties are cached, then "its loaded.")
* Giraph (in TP3) will have all the properties loaded as the entire graph is stored in-memory across the cluster.
* Faunus will fetch all the vertex data (id, properties, edges, and edge properties) when that particular vertex is touched.
* … not sure about other vendors.
In short, where the data is is a function of the underlying storage engine. You will have to review the specifics of the graph engine you are using.
Finally, if you are doing traversals over millions of vertices and edges, realize that OLTP systems like Titan/Cassandra, Neo4j, OrientDB, etc. are probably not the best solution as these are intended for short transactions touching little data during a single transaction. Can you speak to your use case?
HTH,
Marko.