Hi Michael!
Announcing 0.0.0.0/0 can really be a problem, but why does BATMAN tunnel the internet-traffic through gate0?
Because we want to have the means to select the gateway from the gateway client, rather than ending up somewhere random with our outgoing Internet traffic. With default route entries in every mesh node all a gateway client node can determine is its next link-local hop on the path towards one of the gateways. Hence every node on your path will make its own selection for the default gateway, so it is not possible to select the gateway from the mesh gateway client.
Cheers, Elektra