The singleton pattern should be applied when creating module instances, returning the previous state. This would improve performance when many modules use the same component, since only one instance of their model would be needed.
Choosing drag-and-drop libraries or WYSIWYG editors means relying on third-party software and adding hundreds of files to the project. This may become a weak point if these features are not properly implemented or encapsulated. It would therefore be useful to place greater emphasis on metrics for evaluating the choice of suitable supporting software.
For example, the HTML produced by WYSIWYG editors could be analysed to determine which offers cleaner, more standard markup and best meets the CMS's styling requirements.
As the number of modules grows, the proposed visual interface would probably not scale, requiring another system of submenus or drop-down controls.
For caching, a site with entirely dynamic areas that cannot be cached, such as a user area, would need module-level rather than page-level caching.