Визуально не вижу проблемы. Вообще с твоих слов все должно работать.
У меня так и работает, initialRoute ведет на сплешскрин. В нем чето делаешь, инициализируешь, и в конце pushReplacement на нужный роут, и все норм, дублей нет.
У меня вызывается pushReplacement из таймера на сплешскрине, и так выходит, что у меня появляется второй инстанс экрана (вызов идет 100% 1 раз). Кто-нибудь может показать бест практисес по роутам (особенно со сплешскрином)? Я чувствую, я где-то хорошо так что-то упустил. Заранее благодарю