That is true, but when it's saved to a log file, it is no longer an event. At that point, it's treated as Normal Text and Ctrl-O will convert it to Normal Text color because it doesn't have any idea if it's part of an event, an echo, an error message, etc. Just because a line starts with a color code followed by * doesn't mean it's Action Text. It could very easily be a custom error message or other description and a Ctrl-O in that line may very well be meant to change back to the Normal Text color and not back to the color at the beginning of the line.
To accurately display the log, the logs would need to have some kind of "header" on each line that tells the log viewer what kind of event it is. That or mIRC would have to "fake" the codes by changing a Ctrl-O on the line to Ctrl-O followed by the correct Ctrl-K to match the event. That would mean the log files are incorrectly saved (they are saving information that was never there in the first place). I'd rather not have log files faked like that just to make them display "correctly" in the log viewer.