Embedded applications are required by the application architecture. These applications’ root controls should have a z-order that causes only the currently-active application to be displayed, and only that application to be able to receive pointer events.
Additionally, only the currently active application — with its menu bar, active dialogs, etc — should be able to process key events.
The requirements of embedded applications are supported by stack-like behaviour at each priority level within the controls maintained by the app UI.