My understanding of the dynamic blocksize is it is the median of the last 100 blocks is there a reason why it is specifically 100 blocks? Why not 1000? Or take the average of the last N blocks etc?
The dynamic block size limit is inherited from CryptoNote, and is described in the whitepaper:
Users pay for storing the blockchain and shall be entitled to vote for its size. Every miner deals with the trade-off between balancing the costs and profit from the fees and sets his own “soft-limit” for creating blocks. Also the core rule for the maximum block size is necessary for preventing the blockchain from being flooded with bogus transaction, however this value should not be hard-coded.
Let M_N be the median value of the last N blocks sizes. Then the “hard-limit” for the size of accepting blocks is 2*M_N . It averts the blockchain from bloating but still allows the limit to slowly grow with time if necessary.
Transaction size does not need to be limited explicitly. It is bounded by the size of a block; and if somebody wants to create a huge transaction with hundreds of inputs/outputs (or with the high ambiguity degree in ring signatures), he can do so by paying sufficient fee.
The median window is not mentioned at all, so it was likely just inherited from the source. I'm not sure whether Monero changed this. In any case - it's arbitrary.
Changing it to a smaller value would make the system more responsive in case of increased transaction pressure and it could clear the backlog faster & cheaper (fee-wise).
Changing it to a bigger value would make the system less responsive and any queue would likely take longer to clear but the system would be more resistant to manipulation - like if someone is willing pay higher fees just to inflate the block size, it would cost them more with a bigger window.
While the choice of median is not explained in too much detail, it is convenient because it means that a single actor can't move the blocksize. You will always need more than 50% of blocks to be bigger (or smaller) than median to actually affect the median. So, users have to first "bribe" the miners for an increase (enough to compensate for the penalty) but it's no guarantee - the miners don't have to mine a bigger block even though it'd be more economic, so 51% miners could block any increase regardless of the fee - if they see it as a risk for their operations due to bandwith requirements etc.