Tested with Visual Studio, .NET connector, C#, MaxScale 1.21, MariaDB Galera 10.0
When enabling CLIENT_MULTI_STATEMENTS (AllowBatch=true in .NET connector) MaxScale can't manage properly multiple statements execution and status control since it considers it just like one single statement.
Two main issues:
1) The whole semicolons separated commands string is forwarded to one single server, in case of R/W split module that means that a command starting with SELECT... but having INSERT and updates will go to a R(ead) node. for example (apparently the decision on the type of command(R/W) is done on the first match).
2) The status returned from the command is not properly parsed, so that some commands may fail without MaxScale detecting it, indeed with CLIENT_MULTI_STATEMENTS (and CLIENT_MULTI_RESULTS) the parsing should loop on the array of the executed commands, not just read one of them.