Does it work? is there any gotcha that we need to watch out for?
There is absolutely no issue for new contracts to interact with contracts which are already deployed for long time ( which suggests that they are probably older solidity versions ). Recently I deployed a contract with solidity version
7.0.0 and inside of it I created a instance of already existing contract ( by interface contract ) which is running on solidity
0.4.8 and the newer contract is passing and reading data from the old contract without any issues.