Why implement the halving as a step function every 210k blocks instead of continuously reducing the block subsidy each block? An infrequent halving event that poses a bit of a shock to the cashflow of miners seems more risky, in that it will suddenly bankrupt a chunk of the miners with insufficient marginal profitability, rather than blurring out those bankruptcies over a larger window of time.
More concretely, rather than having the block subsidy = 50 >>= floor(height / halvings), it could simply be 50 / 2^(height / 610k).
Does seem like a better idea. Only counter I'd mention is that it's _very_ predictable when the halvenings are coming, it should be simple to price them in to planning decisions.
Well it shouldn't make a difference in practice because everyone knows exactly how far away the halving is and makes their financial calculations accordingly
More concretely, rather than having the block subsidy = 50 >>= floor(height / halvings), it could simply be 50 / 2^(height / 610k).