This is known bug (see https://bugs.launchpad.net/neutron/+bug/1774459) and it's not easy to fix it really. There are some attempts to solve it: https://review.opendev.org/c/openstack/neutron/+/601336 but this patch requires (again) almost complete rewrite and there is nobody who has some cycles to work on it currently.
One thing I can say is that the same scenario should works fine with ML2/OVN backend where You can also have distributed routers.
This is known bug (see https:/ /bugs.launchpad .net/neutron/ +bug/1774459) and it's not easy to fix it really. There are some attempts to solve it: https:/ /review. opendev. org/c/openstack /neutron/ +/601336 but this patch requires (again) almost complete rewrite and there is nobody who has some cycles to work on it currently.
One thing I can say is that the same scenario should works fine with ML2/OVN backend where You can also have distributed routers.