There is one big challenge when trying to do component-based-implementation in #Drupal: menus.
The menu templates have no idea how they are being placed on the page, so they can't tell how they should be styled and function. And the region should contain components, not dictate how arbitrary items placed in it are styled.
Considering using template suggestions to allow menu block templates based on the region they are placed in, but not sure if other developers would think to look there.