Просто используйте replaceScene повсюду.
Нажатие и выталкивание сцен имеет смысл только для быстрых перерывов, то есть для отображения экрана настроек.Вы захотите избежать любого сценария, в котором вы перемещаете сцену, где потенциально может последовать вызов replaceScene.Отслеживать текущий стек сцены становится очень сложно и неудобно (Director не предоставляет удобных методов, позволяющих вам управлять стеком сцены).Очень легко случайно продолжать наращивать стек запрошенных сцен до тех пор, пока не закончится память.
Краткий ответ: избегайте появления и выталкивания сцен, когда это возможно.Если вам нужно сохранить состояние, создайте класс Singleton, в котором хранятся значения, которые необходимо сохранить при замене сцен.