The relayer works for profit… If the paymaster agrees to pay, then the relayer will attempt to send the tx, and collect the fees (btw, the same is true for eth in general)
So either the client or the paymaster had to check if the (inner) transaction falls before submitting the request.
In the valent, you can estimateGas your tx to see if it reverts.
The paymaster can return "rejectIfRecipientRevert=true " which means it won’t pay for rejected transactions.
Note that in the latter case, the paymaster can STILL pay for tx, if it takes too much gas (about 100k, including the paymaster itself), so such a paymaster should not blindly trust any recipient contract, but only contracts that it knows to “reject early”