He just chose binary-based numbers and rounded them to some decimals.
Block time: 512 seconds (2^9) -> 600 seconds (10 minutes)
Initial reward: 40.96 coins (2^12) -> 50.00 coins
Total supply: 21,474,836.47 coins (2^31-1) -> 21 million coins
Halving: every 262,144 blocks (2^18) -> 210,000 blocks
Difficulty adjustment: every 2048 blocks (2^11) -> 2016 blocks (2 weeks)
He could stick to binary numbers, but humans are more familiar with decimal values, so he chose them to be quite round decimals.
Edit:
Do pruned nodes allow incoming connections?
It depends on your configuration. If you enable it, then it will be enabled.
If yes, why?
Because there is nothing that can stop you from forcing it if you really want.
They shouldn't be sharing anything, only validating the chain.
All nodes store at least some latest blocks, so they can share them. There are limits to pruning, you cannot prune all blocks, unless you force it with some dirty tricks.
What happens to pruned nodes on a 51% attack?
Every pruned node have to store at least 550 MB, so assuming 1 MB per block it is 550 blocks. Even if blocks would be 4 MB, it would still be more than 100 blocks. Coinbase rewards are locked for 100 blocks and after that it is assumed that they can be safely spent. If that is not the case, then Bitcoin is gone.
Also, you can see what would happen when pruned chain is reorged below pruned point. You can run your regtest, create some heavy blocks and quickly see that such client would simply display an error and would force you to re-download the whole chain from other nodes. If there are no such nodes having all blocks, then Bitcoin is gone.