Constantinople will add the `CREATE2` opcode, which has contract addresses that are a function of the code hash. This would remove the need for caching. https://eips.ethereum.org/EIPS/eip-1014