But if you had to choose between submitting a 100 kb block and not submitting a block at all... You're going to submit the 100 kb block, obviously. You are still getting 12.5 BTC and are confirming a sizable number transactions.
That isn't actually the choice being made here-- tiny blocks are created even when there is plenty of reasonably high fee paying backlog.
When a 100 kb block is solved, 900 kb of capacity was not just lost. The miner responsible introduced 100 kb of capacity. Not 1 mb, but still a lot more than zero. Mining is all probabilistic, remember. The block could never have been solved at all, and the mempool would be 100 kb bigger as a result.
At an instant this is true, but the empty block still serves to increase the difficulty and reduce the rate of block finding in the next interval. If it happens on an ongoing basis it does reduce capacity.
Even if a block has no transactions at all other than the coinbase - which does not happen a lot nowadays except in some technical cases - the block is still improving the integrity of the block chain, giving recently confirmed transactions and blocks another confirmation, and introducing 12.5 BTC to most likely many people at once (enthusiasts like you and me). It is not by any means a waste and should not be considered unwelcome or inappropriate.
Unfortunately the parties producing small blocks do so because they haven't validated the prior block. So they add only a false confirmation and erode the security of lite clients rather than contributing to security as empty blocks did in prior years before this practice became common.