Why use a diamond on Ethereum? Multiple small contracts calling each other increases complexity. A diamond handling its storage and functionality is simpler.
It provides a cohesive way to organize and structure complex contract interaction.
By cohesive I mean that code that is associated with each other should be easy to use together. At the same time the Diamond Standard provides a degree of modularity. It provides this balance that is very useful.
The Diamond Standard also solves a huge technical problem which is the 24KB maximum contract size limit. This limit becomes a problem when you need contract code to access the same storage variables but can’t anymore because the contract size has gotten too big. The Diamond Standard enables multiple contracts to access the same storage variables in the same/similar way one large contract could.
A contract architecture that makes upgradeable contracts flexible, unlimited in size, and transparent.
Diamond Standard: https://github.com/ethereum/EIPs/issues/2535
The Diamond Standard is hot on Reddit right now: https://www.reddit.com/r/ethereum/comments/gze6k3/a_diamond_is_a_set_of_contracts_that_can_access/
Looking for someone to champion the Diamond Standard for OpenZeppelin: https://forum.openzeppelin.com/t/looking-for-someone-to-champion-the-diamond-standard-for-openzeppelin/3058