The problem is the GMS creates a region using RegionFactoryBean. In this case we have a client cache and client region correctly configured to store all messages immediately to a remote cache server. IMHO, the right thing to do in this case is add a setter for the region in GMS:
<property name="region" ref="messageStoreRegion"/>
But if GMS has a reference to a region, it doesn't need the cache. Being optional, it probably should be changed to a property in a future release. cache and region are not really mutually exclusive - only the cache is not needed if the region is set.