Dynamic block size ends up with the same problem: Attackers could exploit it by making the block size too big for normal people to host nodes. You can add dynamic fe but at that point the fee would bee too high and we are back to the same problem.
If it was as easy as that then the dynamic blocksize solution would have been already implemented but pro-dynamic blocksize people never explain the negatives.
How do you differentiate a spam attack from normals transactions? With Bitcoin its simple too see many small transactions from the same address back and forth but for the network they are normal transactions, there is no cheap way to attack a dynamic blocksize system, you still have to pay fees and they will drain you of your tokens eventually and distribute them to the miners, you don't see a solution because like many in Bitcoin you got trapped into thinking transactions should be frictionless and free, with a premise like this it would be very easy to exploit the system, dynamic fees make attacks expensive and the overall fees in the network balanced, I dont expect many bitcoiners to understand the brilliance of a tail emission + dynamic blocks/fees because they are trapped with what Bitcoin has to offer.
Fees are already dynamic in Bitcoin Core as it is now in the protocol. If you want to continually keep the network bloated you will need to pay a ton of money to keep it sustained. The network doesn't become more centralized because the blocksize stays the same.
With dynamic fee, you can stretch the blocksize and make it bigger. An attacker with enough money could make the blocksize huge and destroy all node operators.