C'est c'est syntaxe valide.
Si vous ne l'aimez pas, d'autres alternatives sont :
SELECT * FROM my_table
WHERE (f1, f2) = ('a', 30)
OR (f1, f2) = ('b', 20)
Ou en utilisant une jointure :
SELECT *
FROM my_table T1
(
SELECT 'a' AS f1, 30 AS f2
UNION ALL
SELECT 'b', 20
) T2
ON T1.f1 = T2.f1 AND T1.f2 = T2.f2