Hardhat deploy supports having different networks with the same chain id. For example, you can have rinkeby and rinkeby-testing. Both are rinkeby, but contract addresses and ABIs can be different.
It may be beneficial to support this in ethcontract-rs.