Yes, I think this is a reason to remove them as well. Once they are buried, their activation height is a constant. So there is no need to report it dynamically over RPC. Apart from being overkill, I don’t see a use case either.
If someone wants to know if the wallet supports $feature, they can use a wallet RPC or the GUI. (This RPC won’t help them)
If someone wants to know if the mempool supports $feature, this RPC won’t help them either. I think the best they can do is read the release notes to figure out if the mempool supports $feature regardless of blockchain height. Alternatively they can just test if their use case is supported.
If someone read the release notes, but wants to know over RPC which version of Bitcoin Core they are running, they can use the appropriate call.
As mentioned in OP, returning a result for taproot
here (buried or vb) is neither right or wrong. While the result may reflect the height at which the BIP activated on the network (as mentioned in the BIP as well), it does not reflect the height at which this software enforces the rules. The rules are theoretically enforced since genesis, practically only after witness is allowed in blocks. This is not something that can/should be explained by returning a JSON.
If you insist on returning a JSON, my preference would be to return 'taproot': True
. Until then, my preference is to remove it, since it is unknown if there is a use case for this (and if there is one) what the use case is.