Yes, it does. The transaction fee is a dynamic fee based on the block size. As the block size increases, the transaction fee decreases. The theory being that an increased blocksize means there's increased demand for Monero, which implies that the value of Monero has increased, so the transaction fee should decrease.
https://github.com/monero-project/monero/blob/4a20a5b5ea4adc...
https://monero.stackexchange.com/questions/2531/how-does-the...
> There are limits to how big the blocks can grow
Perhaps. But they are not hardcoded. The limits are based on the network infrastructure (lag, node calculation speeds). Basically, the blocks will grow until orphaning becomes a serious problem.
> and also how quickly they respond to demand,
This is in, in fact, the only hard coded limit of the things you mentioned.