"how does Oracle know that certain SCN is in certain archived log therefore it needs the corresponding archived log for recovery" - I guess Oracle knows SCN just by using formula last_scn_from_last_applied_log+1,
and knows log number just from log_sequence_no_from_last_applied_log+1 (some issues regarding OPS may be here?)