Yes, if you want to "stack" the data series, they have to be in the same layer. This is why we allow multiple data series per layer.
The z-order refers to the order that the items are drawn. This is not the same as the order in which the items are stacked. By z-order, are you referring to the order that the bar segments are drawn?
The z-order only makes a difference if the bar segments overlap. If the bar segments do not overlap, there is no difference no matter what are the z orders of the segments.
For stacked bar, in some cases, the bar segments must be drawn at a specific z-order, otherwise it looks incorrect. For example, for the attached chart image, for the first bar at "Mon", the bar segments must be drawn in the order "blue, green, orange". For the second bar, it must be drawn in the order "orange, green, blue". This is because of the 3D view angle. If the bars are in 2D, then the order does not matter, so ChartDirector can draw in any order. For consistency, ChartDirector will just use the same ordering as in 3D.
So in summary, the z-order is not determined by the order you add your data set. It is determined automatically by ChartDirector to make the chart looks correct, and can be different for every bar in the chart.
If you are referring to the ordering of the stack, the first data set added will be the stack the start at 0. Subsequent data sets and stack up or down depending on whether they are positive or negative. As explained above, they order they are drawn can be different from the order they are stacked.
If you are referring to the order of the legend keys, the order of the legend keys can be reversed by using Layer.setLegendOrder.