I can’t see patent issues. All the program needs to do is apply some sort of gear-related multiplier to the resistance setting, before sending it to the trainer. Then obviously they need to implement a form of virtual shifting, which then changes the multiplier value.
For example, if you ride up a 5% hill in zwift, zwifts tells the trainer to set a resistance that simulates that. But if you shift to a lighter gear, the resistance is something 0.x times the 5% resistance.
(In reality, outdoor resistance also dependa on speed, so shifting to a lighter gear and slowing down will both have an impact on the power you need to produce. But considering how bad zwift physics are in other aspects, I wouldn’t bet on them implementing that.)