This is working as intended. ZIndex only controls order within the same ScreenGui, and there is a separate DisplayOrder property on ScreenGui that can be used to control which one renders on top.
Real situation: I have a temporary ScreenGui for a preload screen inside ReplicatedFirst.
This screen will be shown until all elements of the official ScreenGui are loaded and then it’s destryoed.
However, the official ScreenGui elements are appearing “over” the loading screen.
The solution would be Zindex.
But this doesn’t work.