This is by design, and it's for a good reason. The carbon monoxide sensor chemically degrades over time. Good CO detectors will perform self-tests periodically, and will go into an end-of-life mode when those tests fail, or when the sensor's expected lifetime has expired.
Yep, and that's a big reason why combined Smoke + CO detectors are a bad idea. The smoke detector side doesn't wear out, the CO detector side does.
The beep patterns for "dead battery" and "detector worn out" are usually different. Generally they're printed somewhere on the unit, in a tiny font that's hard to see bleary-eyed at 3AM when it inevitably starts.
True, this does depend on the detector type. Photoelectric detectors last pretty much indefinitely, but ionization smoke detectors do age. And you ideally want both, since they detect different sorts of combustion. Also there are smoke detectors you can buy with a 10-year life lithium primary cell, so no need to change batteries. These are perhaps a bit wasteful (the cell isn't replaceable and the rest of the detector could be fine) but also don't require throwing away lots of 9V batteries.
I have a plug-in CO detector that's probably 30 years old. Has never given any "end of life" alerts but maybe they didn't have them back then. Guess I should replace it.