I think you need to make them sub-rich:dataTable components rather than rich:subTable components.
I believe rich:subTable expects that all subTables have the same amount of columns.
This problem manifests independent of whether subTable or dataTable is used.
Is there a issue with referring up the "var" stack like this. Experiments suggest that the inner columns element cannot reference the necessary variables.
I'm also wondering if I am perhaps witnessing a bug - I would be most grateful to see working code that has a "columns" (i.e. not "column") component inside a nested table.
It is also possible that I am doing something naive, and misusing the components. This is the main reason for my post - I am hoping that someone can confirm that the code above should work.
I have been unable to find any examples of a element inside nested dataTables.
I remember having odd behavior similar to this. I had to use other (non-RF) components to make it work right.
If I remember right, one of my dataTables was a tomahawk component with t:columns, and I just faked the looks of the RF component by messing with the styleClass type attributes.
I ended up reworking it to not need nested tables and now it is just a rich:dataTable so I'm afraid I can't just post a code snippet.
Hope this helps.