Mechanism to split large contracts

I don’t think it is necessary to implement splitting large contracts at the Solidity language level. The reason is because EIP-2535 Diamonds solves the problem in a sufficiently elegant way.

People don’t have to implement proxies manually, they can build on existing diamond implementations that have been audited.

I think what could help at the Solidity language level is special support for state variable layout for proxies, because the default state variable layout in Solidity doesn’t work for proxies with multiple facets/implementation contracts. Diamond Storage and AppStorage are solutions that are easy to use, but it would be good to have the state variable layout work more at the language level.