Currently, there are a number of tables per address-family (ip, ip6, inet, bridge), all with slightly different functions. This isn't required for nftables, and can make developing new features inflexible.
For instance, task https://vyos.dev/T2196 would be trivial for the user to accomplish with add-address-to-group. But since that is a feature only in vyos_filter, and not vyos_nat, it means a hardcoded solution would need to be developed.
Additionally, sets are created per table, even though they are the same sets. And with some sets being dynamic, there are sync issues that can (and do) exist when updating a section like policy route. The dynamic sets are zeroed out, and must be repopulated, but it isn't working in all cases.
It would make iterating on firewall features much easier, as well as cleanup the current implementation, by collapsing like chains in single tables per address family.