It was never working for CM7 (since Gingerbread the LED was never working as before and having green at the full charge).
Even my very first releases of CyanogenMod for the Legend (going back as far as Éclair) did not use the LED to signal full charge.
Solid green (or blinking, if you enable it in the settings) is used for notifications. Orange for charging or low battery. The blinking green LED is sometimes hard to see so I decided to implement it this way.
Degraded batteries (almost every modern battery after a few weeks) actually don't charge to 100% of their original capacity any more. There's also no reliable method to find out whether a battery is already charged to 100% and charging circuits try to avoid stressing them too much as you can kill a modern lithium-ion polymer simply by charging it for too long (or overheating, or fluctuations of the voltage, or ...). Moreover, even the current status is more guessing than knowing - using battery statistics and statistical analysis.
So if you see your battery status going above 90% chances are quite high it isn't being charged any more at all and the system is just guessing its status. This also explains why the battery status never goes down in a linear way.