Why was BIP34 (Block v2, Height in Coinbase) not implemented via the coinbase tx's locktime or nSequence? At some point in 2011/12 miners started using custom mining algorithms ignoring the best practise to mine to a different new public key (hash) for each subsequent block. This lead to a lack of uniqueness of the coinbase transaction id and destroyed some bitcoins forever.

So it became mandatory with BIP34/v2 blocks to put the height of a block in a special encoded format into the coinbase transaction's input "script".

But why not use existing datastructures like the coinbase transaction's very own locktime field?
That would have made perfect sense, and I see no reason why that wouldn't have been the superior way of doing it.

However, as far as I remember, nobody suggested this at the time.