Why would any contract use the GatewayForwarder instead of the Forwarder(.sol)?
This function can be called by anyone, anytime (even within the same transaction): gsn/GatewayForwarder.sol at master · opengsn/gsn · GitHub
So everyone could basically force that no verification would be done by the Forwarder for any transaction sent through the GateWayForwarder.
It’s dangerous to even offer this Forwarder. What is the reason for its existence?