I’m pretty sure RouterOS simply uses Linux kernel routing tables. In Linux the table name is just a convenience. What matters is the table numeric ID. In Linux the name mapping is stored in /etc/iproute2/rt_tables, and there is nothing to prevent one from adding multiple tables with the same name (it’s just a text file). When you use the name, it appears the lowest ID is used, the other one is ignored regardless of the order in the file.
# Linux example
cat /etc/iproute2/rt_tables
16 custom
15 custom
# ip route add 8.8.8.8/32 via 192.168.88.2 table custom
# ip route show table custom
8.8.8.8 via 192.168.88.2
# ip route show table 16
Error: ipv4: FIB table does not exist.
# ip route show table 15
8.8.8.8 via 192.168.88.2
Linux in general doesn’t try to protect the users from themselves, you have the power to do anything you want, even if it’s non-functional configuration. Naturally, you have to know what you are doing. I think RouterOS has some foolproofing in place but just in some places. This is also what makes it so powerful. ROS is likely picking the next available table ID for each entry and doesn’t care much for the table name validation, mirroring native Linux behaviour.
In this particular case there is probably no harm in having duplicates. Because you would be referencing the table only by name (no other way in ROS), it will probably use the same internal table ID like in my Linux example above. You need to test this, but better yet—don’t use the duplicate names! ![]()