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.
sload costs 2100. Is really the difference between reading 32 bytes and 23kb from storage that negligible?