On metalink's note 43746.1 it says:
The STALE status indicates that a member of a logfile group is incomplete in
terms of the redo it contains. Marking a member STALE prevents the user from
being able to drop it before that logfile group is archived. There are 3 ways
(in 7.1 code) whereby a member could become stale:
1) When building the logfile entry in the controlfile after media
recovery and using resetlogs/noresetlogs we set all members to STALE
- to force archiving before any log member can be dropped.
2) When recovering after a crash also we are not sure which member of a
logfile group had the last redo piece written to it, so we must make sure that
ALL log members are archived before they can be dropped.
Marking them STALE achieves this - it indicates that the log
information is not complete in any one member, so all are needed to reconstruct
during archiving.
3) If a write error occurs when writing to a member it is marked stale,
and if the max error count has been exceeded for that file it is closed. This
will alert the archiver to look at the other log members to complete the
logfile.