If the evolutionary pressures on E (or C individually) are greater than on A, C could evolve completely out from under A to the point where A is no longer functional or foldable. As such, evolution can't "rely" on abstractions like "protein C" because their "source code" can be changed nonlocally and their function is dependent on very local conditions like temperature, pH, and surrounding molecules. Abstracting away g(h(i(x))) as f(x) in Mathematica is pointless when your packet sniffer can arbitrarily change the meaning of "h(x)" to "nop".