It is my understanding the 12 year warranty from BMW requires that you take the car in annually for an inspection and reapplication as required. I agree that washing the undercarriage is important but before I get to 12 years and BMW is off the hook I'll start spraying it myself at the 10 year mark.
That's my plan for our 328 XiT daily driver that sits outdoors all year.
If you really want to save the car from rust, don't drive it in the winter and park it in a dry garage. We have a 15 year old sports car that is not winter driven and it has no rust at all. All that you need is an other vehicle which is your inexpensive winter beater. In fact, this might be more practical and cheaper than annual rust proofing.