In this case hidden (i.e. display: none) row/cell(s) should be rendered. So, please fill in JIRAs for absent elements.
I raised the issue for rich:dataTable:
can you please check?
If I understand right, the empty tr/td should be rendered in the rich:dataTable case and tr should be hidden (display: none)?
What about rich:dataGrid? Applies the behaviour above also for that?
Semantically valid table structure should be rendered ( for tables this presumes empty TR/TD, for lists LI, etc.). Making these phantom elements invisible minimizes impact on the user. So, to check for validity, just pass rendered HTML page to the W3C validator and it will clearly indicate problems if any.