Since you can use Real-time apply, but cannot guarantee that its always working I see do reason not to perform :
SQL> ALTER SYSTEM FLUSH REDO TO target_db_name;
During a Failover to a Physical Standby Database.
Seems the the worst thing that can happen is there no redo to flush.
Even in a failover scenario if the primary database can be mounted, it may be possible to flush any unsent archived and current redo from the primary database to the standby database. If this operation is successful, a zero data loss failover is possible even if the primary database is not in a zero data loss data protection mode.
Ensure that Redo Apply is active at the target standby database.
1. Mount the Primary database.
2. alter system flush redo to <target_db_name> (i.e specify db_unique_name)
3. This will flushes any unsent redo from primary database to the standby database
4. No data will loose using this option.
Hope it is clear...