While working on my own plotLegends package I encoutered some weird behaviour of the front end's syntax highlighting. I reduced the problem to the following minimal example:
Unprotect[Plot];
AppendTo[Options[Plot], opt1 -> True];
Plot[a_, b_, c___, opt1 -> opt_, d___] :=
foo[Plot[a, b, c, d], opt]
Plot[a_, b_, c___, opt1 -> opt_, d___] /; True :=
foo[Plot[a, b, c, d], opt]
Protect[Plot];
Unprotect[ListPlot];
AppendTo[Options[ListPlot], opt1 -> True];
ListPlot[a_, c___, opt1 -> opt_, d___] :=
foo[ListPlot[a, c, d], opt]
ListPlot[a_, c___, opt1 -> opt_, d___] /; True :=
foo[ListPlot[a, c, d], opt]
Protect[ListPlot];
You can see what I mean by "weird behaviour" in the following screenshot:

For both Plot and ListPlot, adding /;True leads to the option being highlighted red (which it otherwise isn't) . But only for Plot the default green highlighting of the patterns gets lost too. Can anyone reproduce this? Is there any reason why Plot should differ from ListPlot?
I'm using version 8.0 on Windows 7.
