Why does Bitcoin consensus require blocks to contain only non negative fee transactions? Also why does the coinbase have to be the first transaction in a block with this rule lifted?
Instead of having those rules, which need to be special cases in the software, I suppose one could just have this rule:
The sum of all outputs in a block minus the sum of all input values in the block must not exceed the block reward.
This rule is already in place to check the block reward, so the other two rules seem useless. A miner which includes a transaction with a negative fee will have to pay for it by the one rule, so nothing bad can happen.
If Bitcoin was using just this one rule I could imagine interesting things could be done with CPFP.
One possible reason I could think of was spam protection, however nothing prevents me from creating a huge amount of spam transactions with 0 or 1 satoshi/B anyway.