There is a single candidate datastore, and multiple sessions can make modifications in this datastore unless you lock the datastore. Since it is a single datastore, any changes made by one session will be visible by the other session.
The intent was that you might want to build up a set of configuration changes in the candidate, possibly using multiple sessions, then you could validate the configuration, and once satisfied that the configuration was valid and complete, commit the changes to the running datastore.