The CEL comes on for two reasons, or two conditions of codes. Intermittent and re-curring. If you had a misfire on #5 once or twice, it might have noted the code as an intermittent, and if it kept coming back, it would store the code and turn on the CEL.
The ECM counts engine starts and probably more, and if the code does not recur after X number of starts after it is first stored, it erases the code, and more or less considers it a fluke. If the code continues to happen, after some time, it turns on the CEL.
trom