When working on
MODE-1135 and reviewing existing code in Graph, it was noticed that several of the Graph.Batch operations were creating and immediately invoking requests against the connector. Changing these caused regressions in the unit and TCK tests related to locking and observation. After a bit of investigation, it became obvious that when locking and unlocking operations were performed within the same batch as other operations (e.g., setting properties), events for the other operations were not fired.
Having the locking and unlocking operations be performed outside of the batch means that what was coded to be a single batch operation actually results in the batch operation plus at least one non-batch operation. IOW, the number of distinct operation sets sent to the connector is doubled, and this would likely (at least slightly) reduce performance.