What's the usual practice for providing several CMS-editable content in pages, particularly the home page? I need to create a home page with several content areas containing text and images (e.g. welcome text, welcome image on a different section of the same page, a second welcome text on a different section of the same page, a third text content area, etc). All of these, of course, is in the same page as some other regions and blocks.

My googling led me to these options:


Create a content type for each of those content. I think this option is a bit overkill since the content type will only be used for one instance of the content type. Doing this will also require creating a block specifying the particular instance of the content type.
Create a system settings page using hook_admin a make each of the content sections a system variable. This also sounds incorrect since those content aren't really system variables. This method also isn't applicable since there is no sense of authorship and doesn't work with the workflow modules.


So what's the usual practice for doing this?
You can try to use Views and make little blocks of content type flagged to the front page if you want.

Another options is Panels or Panelizer and using custom content in Panelizer to layout your frontpage however you want.

Or if you're really brave hook_page_build.

I've used your 2nd option on sites; if Workflows is an issue for you, you will want to try either Views or Panelizer as those tools play more friendly with workflows (it's all about the UX and how much you want to empower your site maintainers).