How to instruct Oracle 11g Standby database MRP to bring down as soon as applying the given archive log file?
archive_xyz.log contains the sequence number Smax


This is where you are wrong. You have 3 instances, you have 3 redo threads, so you have 3 archivelogs containing the change at Smax. 

Because of this, you need to recover the database until SCN/change, not "archive_xyz.log".



alter database recover managed standby database until change Smax;


Note that, this does not apply the change at Smax.

managed_standby_recovery::=


  UNTIL CHANGE Clause
  
  Use this clause to instruct Redo Apply to recover redo data up to, but
  not including, the specified system change number.