I don't see this as a feature dedicated to a single variant, but as a general mechanism to switch off certain rules in the 'only-move' case
Certainly. I'd imagine there are other cases that will turn up.
Actually, this could also be used for Losing Chess, where you can only make a non-capture if there are no captures. So all non-captures could be IllegalUnlessOnlys. Although this would be an inefficient way to do it since it's likely to happen a lot. A more efficient way would be to have the losing rule listen for both MoveBeingGenerated and MoveBeingMade messages. In MoveBeingGenerated it just needs to make note of whether any capture was generated. This wouldn't work if we had to worry about pseudo-legal moves, but Losing Chess has no check/checkmate so I don't think that's a concern.
Actually, this could also be used for Losing Chess, where you can only make a non-capture if there are no captures. So all non-captures could be IllegalUnlessOnlys. Although this would be an inefficient way to do it since it's likely to happen a lot. A more efficient way would be to have the losing rule listen for both MoveBeingGenerated and MoveBeingMade messages. In MoveBeingGenerated it just needs to make note of whether any capture was generated. This wouldn't work if we had to worry about pseudo-legal moves, but Losing Chess has no check/checkmate so I don't think that's a concern.