Array Modifier creates something that exports as single mesh, how to create same through group/parent/etc?
It seems that joining (CtrlJ) is exactly what you are looking for.

Joining shouldn't prevent future modification. 
Within the joined mesh, there will still be two disjoint islands (or five, if each leg is disjoint): the table top and the rest of the mesh. 

If you want to separate it again to work with, you can use P &rarr; By Selection. You can even, immediately after joining, save the table top as a vertex group so you don't have to worry about selecting it again later, although the Select Linked function (L or Ctrl  L) should work for that anyway.

Are there any other concerns for joining? If so, perhaps there's a workaround.