Difficulty in creating and handling a complex post type

If you haven’t already, I’d suggest looking at the Advanced Custom Fields plugin. They have two custom fields that might help a lot in this situation: Post Object and Relationship. Browse all their custom fields here.

What these allow you to do, essentially (insofar as my understanding goes…), is to link one post (a restaurant, let’s say) to another post(s): menu, offerings, etc. That alone, along with its many other custom fields, would take care of a lot of the bloat you’re afraid of. Not to mention, it’d be a lot easier this way to have separate loops on your homepage for new offerings and new menus, as they’d already be their own custom post type.