As an aside, fully validating a DAG chain is quite difficult with the current Bitcoin Core architecture. The benefit of fully validating weak blocks is that it lets you safely distribute rewards weighted by fees, using a scheme similar to PPLNS with job declaration
It has to update its UTXO set database at every block. If there’s multiple branches it would need to keep a cache around for each branch. And it needs to store each cache on disk on shutdown. It would also need to track multiple copies of the mempool, at least if it wants to process new blocks as quickly as possible.
Interestingly a Utreexo based node won’t have this problem. Its UTXO set is a tiny 1kb Merkle forest. The node can store a copy along with every block so there’s almost no overhead for tracking multiple branches.
Multiple mempool branches might still be problematic though, not for storage but because it’s computationally expensive to update. Though perhaps with cluster mempool that’s not a problem either.
I would imagine that Libbitcoin can also handle a DAG structure more easily because of its different architecture, see e.g. Libbitcoin for Core people