The max block size could be recalculated every 2000 blocks (or whatever), as de reward difficulty autorregulates itself.
The maximum block size would be somewhere between 1 MB and infinite.
Simply calculating the median size of the last 2000 blocks and multiplying it by 2x (or by 10x, or whatever), that's the maximum block size for the next 2000 blocks.
So every 2000 blocks, the max block size is recalculated.
Bigger blocks could be allowed, but with a penalty (Rosenfeld's brilliant solution:
https://bitcointalk.org/index.php?topic=1078521.100)
That could be easily implemented in Core.
Opinions?