Is this allowed?
Yes, as you can see by now other miners have built on top of that block.
Questions:
1. Why would a miner do this and not include any transaction missing the fees?
2. If everybody started doing this bitcoin will be mined but no transactions will occur, is it a flaw?
1. Why? because they can.
What other reasons might cause a miner to mine a block like this.
- There's no other unconfirmed transactions in their memory pool, unlikely
- The mining software might be quickly issuing work based on the previous block header before syncing its mempool based on the transactions in that block. Basically trying to get a headstart on other miners with a small chance of quickly solving an "empty" block*
2. It shouldn't happen. Miners would be missing out on accumulating transaction fees, and would ruin the network making their rewards worthless.
"Empty" blocks are going to happen from time to time, they won't make up the majority of blocks while the Bitcoin network is still actively utilized.
*A mining pool operator might be able to shed light on this. I'm guessing that if there is a short period of time that a miner is working on an empty block, they are generating a valid merkle tree of unconfirmed transactions in the background and then start working on that instead of an empty block.