In a Vivado project, I set the Hierarchy update mode as "No update, manual compile order", then close the project without any changes to compile order or hierarchy. But, when I reopen the project, I find that a "Hierarchy is Out-of-date" message is shown on the top of the Hierarchy tab in the Sources window.
Is this the expected behavior?
Yes, this is working as designed.
In the "No update, Manual Compile Order" mode, there is no hierarchy available since the tool does not create a hierarchy by default. When the project is opened in this mode, the default tab in the Sources window is the Libraries tab and not the Hierarchy tab.
At this point, if you switch to the Hierarchy tab in the Sources window, no hierarchy is available.
The "Hierarchy is "Out-of-date"" message mentions you need to generate the hierarchy, you can click the "reload" button to do so.