Thank you for your answer.
I was hoping there was a neat and simple scope/target scope “magic” to solve the problem.
This one worked, and I think is still simple enough, one can see how recursive routes work:
/ip route
add check-gateway=ping comment="default route - recursive via working gateway" distance=2 gateway=8.8.4.4 routing-mark=exit
add check-gateway=ping comment="default route - recursive via working gateway" distance=3 gateway=8.8.8.8 routing-mark=exit
add distance=1 comment="ISP1 local" dst-address=192.168.4.0/24 gateway=192.168.4.1 routing-mark=exit
add distance=1 comment="ISP2 local" dst-address=192.168.33.0/24 gateway=192.168.33.1 routing-mark=exit
add comment="next hop search" distance=1 dst-address=8.8.4.4/32 gateway=192.168.33.1 scope=10
add comment="next hop search" distance=1 dst-address=8.8.8.8/32 gateway=192.168.4.1 scope=10
/ip route rule
add interface=lan table=exit