My two cents:
1. Reserved types are awesome.
2. Varint for type is awesome.
3. BIP174 should specify a specific type for all (global, input, and
output) which means "see the BIP numbered in the next byte" so we can have
some sort of BIP43-ish system for BIP174... POR COMMITMENT and my current
sign
Good point, for the moving checkpoint a number of blocks (or maybe a timestamp)
could be enough, but for the block limit of X blocks to decide if the moving
checkpoint is ignored or not, as we have to compare two chains (main chain and
fork) maybe is much better to measure the blockchain lengths