In reply to mark k..

@mark k.

Impact on performance is negligible if non-existent (vs splitting into separate tables). Widgets can share many features that (custom) posts have such as authorship, edit lock, status, scheduling, revisions, api actions etc. As long as the objects take advantage of the same kinds of features, there's no reason not to use the posts table.

Built-in caching negates the database query performance penalty. Same should happen for menu items and menus.