The java objects returned by
getGraphBatchLoading are different. This is because the former follows normal procedures when mutating the graph and latter switches off some safety checks in favour of faster mutations. Both graphs however point to the same persisted layer. So this is not a bug.
With regards to the original question, right now our graphs are thread bound so if effectively you wanted more than one graph so you could perform different mutations at the same time you would have to call
getGraph in different threads. Or even more simply just pass the original graph into a different thread, this will automatically create a new thread bound instance for you to work with.