If it is because the batchRequest is generated by the instance method newSignalWithStartRequest, then the question simply changes to why that is not a static method but an instance method?
Our code ended up having 2 patterns in them due to this
OrderWorkflow orderWorkflow = client.newWorkflowStub(OrderWorkflow.class, options);
WorkflowClient.start(orderWorkflow::start, orderId);
OrderWorkflow orderWorkflow = client.newWorkflowStub(OrderWorkflow.class, options);
BatchRequest batchRequest = client.newSignalWithStartRequest();
batchRequest.add(orderWorkflow::start, orderId);
batchRequest.add(orderWorkflow::updateStatus, status);
client.signalWithStart(batchRequest);
Why aren’t they unified?
// Why not like this?
WorkflowClient.start(orderWorkflow::start, orderId);
WorkflowClient.signalWithStart(batchRequest);
// Or why not like this
client.start(orderWorkflow::start, orderId);
client.signalWithStart(batchRequest);