That would also introduce the anomaly of a script that was once valid
becoming later invalid, when nothing varies other than time.  That is
not super compatible with the current model of reprocessing
transactions in later blocks if the block they were first in gets
reorged.

Very good point. 
 

(Not a huge flexibility loss as you can implement "not after" by
making it the previous holders responsibility to spend a "not before"
back to themselves.)

Do you mean something like the below?

scriptPubKey: 
  IF 
    {A's pub} CHECKSIGVERIFY
  ELSE
    {curr_height + 100} CLTV {B's pub} CHECKSIGVERIFY

This ensures that Alice has to spend the output in the next 100 blocks or risk it being taken from her (she just has to put an OP_TRUE on the end of her scriptSig). So, it seems we can forget about an inverted CLTV/CSV, great!

Best,
Stephen