The ideal block size should be something that still ensures that the network is sufficiently secure. It makes no sense for us to implement a dynamic size, where the size gets inflated to unrealistic limits at times just to accommodate the extra transactions. It would be far better for us to determine the specific and appropriate block size from the on-start because there isn't any downsides to that. If the demand isn't enough, then the blocks would naturally be smaller.
I get your point but as franky1 pointed out it may not be worth the hassle of running a full node if you do not make a lot of transactions, you may in this case use some third party services to verify your transactions. If you do make a lot of transactions then you could as well pay a lower fee on your transactions and spend more money on your storage and bandwith. I want to emphasize the fact that the cost of storage and bandwith can be shared between multiple persons, the cost of a transaction can hardly be shared so transaction fees may have a bigger impact on centralization than the cost of running a full node.