1. the 4 MB is the block "Weight" not block size.
as you can see the block weight of above block is 3996.461 kWU according to blockchain.info
Weight is just a multiplier for non-SegWit data, specifically each byte of non-SegWit data is 4 weight units. As you just demonstrated, the weight is
not the same as the block size, which is 1,032,119 bytes, not 3,996,713 bytes. You can plainly see the block size by dumping the block's raw data into a file size utility:
$ bitcoin-cli getblock 00000000000000000139cb443e16442fcd07a4a0e0788dd045ee3cf268982016 false | xxd -r -p | wc -c
1032119
See? No tricks: there's exactly 1,032,119 bytes of data in that block.
They are (incorrectly) showing the stripped size of the block, ie, with all SegWit data removed. It is not possible to validate SegWit transactions with this data removed, and SegWit nodes will not be able to sync from it.
3. there are still legacy nodes on the network that will reject any block that is bigger then 1 MB so that block can not be valid if we want to be backward compatible.
That is what stripped blocks are for. They are not forward compatible with SegWit nodes, and any old node that upgrades to SegWit will need to download these blocks again to get the full data.