It was designed to be OBD2 compliant, but it only was fully activated in the US.
OBD2 features are lambda sensors after the cat to monitor that, a check engine light, and the 16 pin OBD2 connector.
It would also have a long term adaptation which it collected data from the short term trims that pretty much everything has.
The older stuff would do everything on the fly, the newer OBD2 type would gather the data and formulate a plan.
The benefit of this is in the dark areas, ie over 3500-ish RPM where the lambda sensor isn't fast enough to supply data.
With the OBD2 adaptation, it already has an idea of what needs to be added or taken away from the areas it can monitor, and it passes these details on.
Full OBD2 compliance wasn't needed in Europe, so BMW left out a lot of those features, purely so you'd stick with BMW for diagnostics.
One of the major features of OBD2 was cheap code readers (even if they can only check on emissions based data) so any garage could diagnose a car without needing 2k of kit from each different manufacturer.
The hardware structure is capable of doing the full OBD2 stuff, but there might be silight differences, such as loom pins in euro ECU might not be connected for the extra post cat lambdas, and the coding for a euro version will cut out the OBD2 data stream.
True OBD2 has to have the 16 pin connector, within reach of the drivers seat, accessible without the need for special tools
It was quite a hit for manufacturers to allow all of this.
It's also noteworthy that on the cars that have both the OBD2 16 pin, and the 20 pin ADS Connector, BMW didn't wire through some of the diag stuff to the obd2, so if you wanted to connect to the car for full diagnostics, you still had to use the 20 pin ADS if fitted.
Pins 15 and 20 in the 20 pin are the diagnostic lines, the data is split over the 2, with the ABS on one, and the ECU on another. I did see something about 4cyls using a different pin too.
MS41 is OBD2 compliant, but not enabled, and has an eeprom soldered on, so ant changes are done via remapping / flashing rather than pulling and swapping a chip.