Ken, thanks for the input and compliments.
Someday I'll probably get a Peake to compliment my current reader out of curiosity. Perhaps like others, I chose the OBDII reader initially so that I can use it on my girlfriend's benz and my friends' other cars. My reader (Equus 3100) seemed like a good compromise, since it asks me to choose my make of car from a list whenever it detects manufacturer-specific codes (and it gives helpful freeze frame data). So I think I am getting whatever information that BMW wants an OBDII reader to convey. But like I said, I'd like to have a Peake one day to compare the readouts and possibly get additional info.
You probably know this already having dealt with similar codes before, but in case it is of help to you, other causes for such codes (lean codes) could of course be due to other vacuum leaks (such as other oil separator hoses or perhaps the oil separator itself, and the DISA valve gasket), or possibly due to poor fuel delivery (clogged fuel filter or failing fuel pump). The MAF sensor or a sticking ICV might also be involved, but other possibilities seem more likely to me. Before finding the broken hose, I cleaned my stuck ICV, which helped the car idle a little better, but the codes remained due to my hose problem. Good luck.