Why are negative fees not allowed? 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.
Very interesting brain teaser. I agree that this could be interesting in combination with CPFP. The sender could defer the transaction fees to the recipient which would probably be an interesting proposition for some services in the Bitcoin space.

There are a few problems with negative fees from an operational perspective, though:  

The sender defers prioritization to the recipient. However, if the sender needs to access the funds that are assigned to the change output of the transaction, he'll either have to CPFP the transaction himself after all, or doublespend the transaction to add more outputs.

In the first case, he ends up paying the fees himself, in the second case, he creates a scenario where multiple valid conflicting transactions float about unconfirmed, and since he doesn't know which one will confirm first, he'd better also broadcast all alternative complementary transactions. 

I.e.

tx1: S --&gt; R1 + C

tx2: S --&gt; R1 + R2 + (C-R2)  
tx1b: C --&gt; R2 + (C-R2)


This would quickly increase the amount of transaction combinations that could be accepted on the network, create unnecessary network traffic, and would create a headache for fee estimation: At the same negative feerate, it would be much cheaper for R1 to just purchase tx1, while R2 would have to come up with the fees for tx2 (which is cheaper than tx1+tx1b).

In general, if there are multiple recipients to the transaction, the first to spend from the transaction has to pay for everyone to receive their money.

Another problem is that it may further incentivize out of band payments for transactions which at a larger scale could cause unpredictability in transaction confirmation times, and may skew other incentives in the network.