I think that every remote traversal should have a barrier() appended to the end. Why? It is cheaper to bulk and send a bulk over the wire than to send multiple of the same traversers over the wire.
In essence, the same optimization we reach for with bulking for execution should be used for bulking for serialization.
The problem/question I have is, where should this optimization be inserted?
1. By GremlinServer (the remote connection) after received bytecode and creating a traversal?
2. By LazyBarrierStrategy that should just ALWAYS add a barrier() to the end of every traversal?
3. By RemoteStrategy by injecting barier()-bytecode right before sending the bytecode over the wire?
I'm leaning on (2) given that its the natural way in which we currently do things.