I have situation with several ISP, some of which has dynamic gateways (via dhcp). One of working answer in the internet was run dhclient(8) with setfib(1), to write routings to other routing table (or make own dhclient-script which do same task) and than use this table in pf policy routing...