Whilst it's true that the GW1000 driver can operate as both a driver and a service the GW1000 driver was never designed to operate both at the same time on the same WeeWX instance (the main limitation in this regard is that both the driver and the service use the same [GW1000] config stanza). Having a quick (emphasis on quick) look at the GW1000 driver it may be possible to have the service use a different config stanza, say [GW1000Service], by changing class Gw1000Service() to extract it's GW1000 config dict from [GW1000Service], eg:
class Gw1000Service(weewx.engine.StdService, Gw1000):
....
def __init__(self, engine, config_dict):
"""Initialise a Gw1000Service object."""
# extract the GW1000/GW1100 service config dictionary
gw1000_config_dict = config_dict.get('GW1000Service', {})
You would definitely need to specify IP addresses for each GW1000 (ie not use discovery) and you would need a custom field map for either the driver or the service.
I don't know if this will work or not, class Gw1000Service has dual inheritance and this may cause an issue with what GW1000 config dict is used where, so no guarantees. There may be other changes required. If it were me I would learn to live with two databases, it certainly won't limit WeeWX.
Gary