Qubes OS implements its firewall rules in the next upstream VM which
"provides network" (see qvm-prefs). So if you don't trust your VPN VM to
manage your firewall rules, you'll need
client VM --> sys-firewall-vpn --> sys-vpn --> sys-net
If you additionally want firewall rules for sys-vpn (e.g. allowing only
connections to your VPN provider) and don't trust your sys-net to manage
them (because it manages your network devices already which run a lot of
proprietary code?), you'll need
client VM --> sys-firewall-vpn --> sys-vpn --> sys-firewall --> sys-net
You'll also need the latter if you want other client VMs with clearnet
connections and managed firewall via sys-firewall.
It's also explained in [1], section "Network service qubes".
I'd also recommend using disposable VMs with static names for these
service VMs.
[1]
https://www.qubes-os.org/doc/firewall/