Common problem. My 100k mile E46 M3 was showing low oil warnings when I was a half-liter below full. I'd get the intermittent (reset to off when the car was turned off) at a quarter-liter below full. It would happen after driving a few miles after cold start-up.
I "understand" (think I know, but I might be wrong) that the oil level is calculated by measuring the electrical resistance between two probes immersed in the oil. The higher the oil level, the larger the electrical path from one probe to another, and therefore the less the electrical resistance. As oil degrades, it coats the probe with varnish, increasing the resistance and therefore giving false alarms for low oil. The solutions are to: replace the sensor, or keep the car topped off with oil. The latter is much cheaper.
Be thankful you have a dipstick. BMW's decided to eliminate them on their newer cars. This saves them about $1 in production costs per car. But more importantly it's something else to **** up and bring you back to the dealer and something else to convince you it's time for a new BMW.
Lack of a dipstick also prevents ten-minute oil change places from doing oil changes by putting a siphon down the dip stick hole. They like to do this to prevent the minimum-wage morons working there from losing, cross threading, not tightening, or over-tightening your drain plug, and getting a trip to small claims court for ****ing up your car.
The low oil warning did save me once back before the false alarms caused by varnish. There's a inspection cover hammered into a hole in the timing chain cover. Mine came off, spewing oil on the exhaust. The low oil light came on right as I pulled into my driveway, and I was just below the low mark on the dipstick. A yellow "LOW OIL" is better than a red "LOW OIL PRSSURE" light.