Only hard errors will keep the CEL on all the time. Many intermittent codes only flash the light (when the problem happens) and stores the code for later retrieval. But they should clear with the battery disconnected, maybe there is a problem with the ECU's trouble code memory.