How to deal with the contract-size limitation when making it upgradeable?

Hello, I have few question about upgradeablility and contract-size limitation.

  1. when using openzepellin proxy for making contract upgradeable then there will always be single implementation contract which keeps on upgrading like BoxV1 to Boxv2 example. Is it true?

  2. if above is true then how to avoid 24KB size limit. I'm asking this because in order to avoid storage-collision, we have to either copy the BoxV1 contract to BoxV2 OR inherit the BoxV1 in BoxV2 and then add the new state-variable and function but after some time it is going to hit 24KB contract size limitations.

  3. I heard about Diamond standard. Is Openzeppelin team doing anything on this standard?