A baker creating a block must currently optimize for two limits, the size limit of the block and the gas limit. While heuristics for the multiple knapsack problem are pretty good, this tends to complicate matters a bit.
For instance, if gas were the only metric, a baker could order transactions by fee/gas and include them in this order, a pretty good heuristic. This is much more complicated with two constraints.
The reason for the size limit of a block is that it takes time to download, and takes up storage space. The first constraint can actually be subsumed into gas, by determining the gas cost incurred to download the block on some baseline Internet connection. It doesn’t fully capture the cost of storing historical blocks, but storage is typically not the limiting factor.
Note that the size limit per operation, which does not affect bakers directly, can be kept in place.