That's it, right here. The block only permits a limited amount of zero fee transactions to be included, and any additional transactions must meet the criteria for the fee schedule to be included into a block.
That is not correct. A miner could make every block 1MB ~2,400 tx only include the free ones and exclude every paying tx if they wanted. Not saying they would (it would be stupid) or they should but they could. Saying the "block" prevents them is a cop out.
Miners decide what tx to include in a block. The only thing which can't be included in a block is an invalid tx, or a sum of tx greater than 1MB in size.
I was generallizing. I know that miners can choose their own rules, but the default set of rules say that there is a limit to the free transactions. Changing those rules requires programming skill and the desire to do so.