There are solutions to this, not just workaround. Using the CMS with conditional visibility, you can give more power to your clients to alter some of their static pages or to create, for example, dynamic landing pages on-demand, with various layouts.
Example with adding sections to their homepage.: Of course here we need a certain dose of predictability, hence the “pre-designed” aspect you were mentioning.
So, design a series of sections and bind their content to the CMS: Images, background images, titles, text, you name it, everything supported by the CMS can be dynamically added by the client, and there can be some static elements, icons, textures, etc. Logically, you’ll create a Collection for it but only use one or a few Collection Items for it (as it’s only going to populate 1 or a few extra sections, right?)
Use contitional visibility to decide when each section is visible, or hidden. For example, you can bind the visibility to any field, and use the “is set” or “is not set” attribute. For example, “If Title is set then the section is visible”. As simple as that. Or, better, add a switch in the collection fields and make this witch decide if the section is visible or not.
You can then create a whole system of dynamic landing pages. Design the Template page with a lot of various sections, for example 12, but they’re all hidden by default. As soon as the client put data for those sections in the CMS, they get activated. So The client can push a landing page with section 1, 2, 4, 11, another one with 1, 8, 9, 10, 11, 12, etc.
You, as a designer, must concentrate on making those sections work well visually whatever the content (kind and lenght) the client will input.