These two REST API methods fail when group commit is enabled. The underlying cause is that the original implementations read on the last commit time and wrote on the unisolated indices. This allowed the implementations to stream statements to be deleted from the query (on the last commit time) into the deletes on the unisolated indices.
This was a scalable approach since the data did not need to be materialized for the delete based on the query to run. However, this approach is not compatible with group commit. When group commit is enabled, the last commit time is no longer guaranteed to be the last mutation applied to a given index. Thus the query can not be run against the last commit time. This forces us to materialize the statements to be deleted and then delete them.
Note that SPARQL UDPATE has the same issue since it allows a sequence of operations to be executed without any intervening commits. Thus SPARQL UPDATE materializes the statements to be deleted in a DELETE/WHERE style operation.
BLZG-670 (Group Commit)