I hinted at this elsewhere, but I suspect that we can simplify by having a 

```
void DBClientSomething::executeBulk(
    const BulkOperationBuilder& bulk,
    const WriteConcern* wc,
    std::vector<BSONObj>* results);
```
Method that actually implements issuing the bulk operation. If the spec mandates that BulkOperationBuilder have an 'execute' method then it can just trivially forward itself.

Does that make sense?