The more I think of it the more I don't see the benefit of this approach over using
loop_on_init in
weewx.conf in dealing with this type of problem. Setting
loop_on_init = True will cause WeeWX to reload the driver after (the default) three consecutive attempts to contact the gateway device fail; WeeWX continues running the entire time. Perhaps if some sort of network or device initialisation sat in the WeeWX core there might be a benefit, but all of that sits solely in the driver (as far as I am aware this is the case with all drivers). If the network or the device is in such a state that communication with the device via the API is not possible then no amount of WeeWX restarts or driver reloads will correct the situation.
It seems to me that forcing a WeeWX restart via systemd is a somewhat heavy handed approach.
My opinion only and I expect others will have a different view.
Gary