It makes sense to extend panel "layout" options to HTML5 "semantic" elements - <header>, <footer>, <nav> and other.
I like the idea of having a component around to support different layout options ( HTML 5 included ), especially if used by the developers for this.
I don't really like the idea of having an "a4j:outputPanel" and a "rich:outputPanel". Especially if the only difference is the layout support.
Here is a little brainstorming.
Instead of having two different panels, could we have just the "rich:outputPanel" that supports the layout options. Then either create a new behavior, or add functionality to a4j:ajax behavior that can be used to make nearly anything "Always Updatable"? This effectively attach a "renderAlways" behavior to other components.
So developers could do something like this:
<rich:outputPanel layout="xxx" ….> <a4j:ajax renderAlways="true"/> ... </rich:outputPanel>
Don't worry about the actual name of the behavior or attribute this is just for brainstorming.
This new behavior/functionality could also be tied to a value expression to make it variable based on other criteria.