Not trying to be adversarial at all. Just tossing in some info and opinion on stuff I've learned along the way. Use at will or not.
Since there is no documentation available on the Motronic ECU's design and no public details on it's logic, not even a simple flowchart, most of what is known about how it works has been through test and observation and stuff gleaned from the factory manuals.
I think you are correct that a fault can force open loop operation in the Motronic. A great example of this is if you disconnect the O2 sensor to force it to run open loop. It has no signal to run open loop with and it definitely throws a fault code. (See below)
I'm curious about the hard fault code you had and how you read the code or tested it. Is it possible it was reporting a bad O2 sensor? Easy enough to find out.
This is pasted from IBMWR BMW maintenance manual in case anyone is interested.
Motronic Fault Codes - Stefan Hegnauer
Warning!: Although unlikely, it may be possible to screw up the Motronic. I take
no responsibility of any kind if you do so - in other words, it is your risk, and you
are on your own if something fails. If you are not absolutely sure you can handle
this, do not attempt this procedure!
Note 1: There is no connection of the Motronic (diagnostic unit) to any lights
Note 2: This is strictly for R1100R/RS/GS/RT, Motronic 2.2. I have no idea about
the Motronic 2.4 of the R1100S and R1150 family.
1. Get an analogue Voltmeter (digital ones are usually not fast enough, so you
could get wrong readings)
2. Hook it up between pin 1 of the diagnostic connector and ground (battery -,
chassis), switch ignition on (if you don't start or just very briefly turn the engine,
codes 1122 and 1133 will show, which is normal)
3. With a separate wire, connect the same pin 1 to ground for at least 5 seconds,
then remove the wire
4. The needle of the voltmeter should go to nearly zero for about 2.5 seconds,
then rise again to almost 12V
5. A series of short dips towards zero follows - count the number of dips
6. A short pause of 2.5 seconds follows
7. Steps 5 and 6 are repeated 3 times with perhaps different numbers of dips
8. You have now four counts, this is the Motronic diagnostic code (see table
9. The whole sequence, beginning with the 2.5 seconds dip of 4 above, repeats
over and over until prompted again (step 3)
10. The next error code (if any) is shown after prompting
Example: one dip - pause - one dip - pause - two dips - pause ? two dips - pause
- long dip - pause (repeat) => code 1122
0000 no further fault stored
1111 CO potentiometer
1122 Hall signal 1
1133 Hall signal 2
1215 Throttle butterfly angle sensor
1223 Engine temperature sensor
1224 Air temperature sensor
2341 Oxygen sensor at limit
2342 Oxygen sensor signal invalid
2343 mixture setting at limit
2344 Oxygen sensor shorted to ground
2345 Oxygen sensor shorted to 12V
4444 no fault stored