If I understand correctly, the price of the far call to a new address is ~2300 gas. Source: https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations.
There are some other costs included, but still, they do not depend on the size of the contract at all. Why should it cost the same to call a contract that has size of a few bytes and a contract that has size of 23kb? They require different amount of I/O as well as incur different memory requirements for the node. The same goes for extcodecopy.
A cold sload
costs 2100. Is really the difference between reading 32 bytes and 23kb from storage that negligible?