Hi Hazal,
Your comment is correct: the graph.set-vertex-id feature is not documented further than this, so using it is not advised.
You are also right that lookups in the index require additional processing. However, depending on the ordering of inserts and their distribution across JanusGraph instances, many lookups can be avoided if vertices are still in the JanusGraph cache. Also, using storage backend ids assigned by JanusGraph will be more efficient for vertex reads later on because of the id partitioning applied.
So I support your presumption that using an indexed property is to be preferred.
Best wishes, Marc