I see Vlad Zamfir was able to demonstrate by-block consensus has great merit to Vitalik. Is it better than by-chain consensus? What are the risks associated with developing by-block consensus into future versions of Ethereum?
How is by-block different than by-chain?
Clients in a by-chain consensus scheme attempt to determine the longest fork (making it the "correct" chain) by traversing the blockchain from the first block to the most current block and determining which fork has more participation or hashing power or whatever behind it (dependent on the type of blockchain). This becomes an economic incentive to stick with the correct chain, because otherwise you will lose any assurance of transaction finality if you stick with a chain that is not the "correct" or the most widely used chain. By-block consensus doesn't take this approach. A betting mechanism is used so that validators (those who collect, process, and vote on blocks of transactions) determine consensus of transactions on a block-by-block basis regardless of blockchain height. Validators vote on every block height separately and those blocks are the "chain" that forms once they reach a state of block finality. A client who is traversing a by-block blockchain will go through the chain and download all the blocks and bets made by validators. The clients will determine based on the previous bets whether the block is valid or invalid. An invalid block will have a lot of negative bets, where-as a valid block will show a history of positive bets. There is an economic incentive for validators to bet on blocks with more positive bets because they are punished by losing some of their stake if they get it wrong. Clients rely on validators to make bets and basically vote blocks into a state of finality, of the block either being a valid or invalid block.
Is it better than by-chain?
There are arguments for and against by-block consensus, so I can't answer the question "which is better". The article you linked to touches on some of those arguments.
What are the risks with by-block consensus?
One of the more glaring risks associated with implementing CASPER is the yet unsolved problem of how to securely get the correct list of validators out-of-band. When you join a blockchain as a bonded validator in a system such as CASPER, you have to retrieve the list of current validators in order to join them in the betting process. If a validator gets a list that is malicious and includes validators who are colluding or in some way acting in a malicious capacity could potentially steal Ether from other bonded validators or disrupt the blockchain network. This can be accomplished through various attacks, including ones where a group of malicious validators trick the honest validators by colluding to change their betting strategy on a block simultaneously causing the honest validator to loose funds (see the end of this article for more information).