I've run OpenWRT in a VM before as a gateway to a set of other VMs on the host, but I'm skeptical about the performance implications of running it in a VM for my primary internet connection.
In general, I find VMs a huge pain to manage compared to containers. I don't run any VMs at home anymore, aside from firing a temporary one up from time to time to try out some random ISO.
vm performance is excellent, especially if you passthrough the nic. Use libvirt + kvm. It's pretty simple to use vms on standard distros. virt-manager is a good gui.
It’s still a whole other kernel and disk image to worry about, passthrough to get set up, etc. For the stuff I run at home, I want things to be as simple and and automated and reproducible and hands-off as possible. VMs feel too much like work. If I never have to edit libvirt XML again, I might die happy.