I think the point of plasma is that it is nested, so:
mainnet -> root-contract -> child 1-> children 1.1 & 1.2 - > children 1.1.1, 1.1.2 etc
The trick here I guess would be to find a dapp that has some natural partitioning scheme that doesn’t force accounts/datastructures to be locked on child-chains for operations to take place in parent chains.
Or you would have some kind of mask in parent-chain that locks certain adresses, so you then exit child-chain to perform cross-child-chain operations and then re-lock data in sub-chains
edit: as for diagonal operations, perhaps it can speed up some operations in that you could perform an operation on child A relative to state in child B without first going to parent AB
The plasma paper (plasma.io) talks about nesting plasma chains into a tree, and how withdrawals interact with the tree structure.
It is not clear to me what the diagonal chain means. Is there a plasma root contract running on both p1 and p3? Do headers in p4 get committed to p1 or p3 or both?