My 2uBTC on this issue:
Instead of guessing the costs of the network via extrapolation, code in a constant-cost negative feedback mechanism. For example, similar to difficulty adjustments, if mean non-coinbase block reward > 1 BTC, increase max size. If mean block reward < 1 BTC, decrease max size (floor of 1MB).
a miner can include into his block a transaction with an arbitrary large fee (which he gets back of course), throwing the mean off the chart.