I've not used OBH with non-movable objects in all my insim adventures, but if they were removed I imagine I could achieve the same results with some strategically-placed movables and/or co-ords from an MCI.
I decided to keep it after hearing that it is in use. I did copy, paste and simplify of the code that deals with recent impacts (the code that tries to reduce one collision event that happens over several physics frames, into a single output and avoids packet spam if there are multiple contacts with the same object in a short time). The newly added system is actually simpler (internally) because it is only concerned with local cars vs unmovable objects. It did no harm to add a few functions that work with the new style of unmovable objects.
In theory it should be easy to avoid any confusion by filtering on one bit in the OBHFlags field of the IS_OBH packet. The OBH_CAN_MOVE bit is set on all movable objects.
I think there are only 3 cases reported:
Movable, layout object - OBH_CAN_MOVE and OBH_LAYOUT are set
Movable, non-layout object - OBH_CAN_MOVE is set / OBH_LAYOUT *not* set
Unmovable, layout object (as discussed here) - OBH_CAN_MOVE is *not* set / OBH_LAYOUT is set
Unmovable, non-layout objects were always excluded because there were problems e.g. packet spam when a single seater car went around a corner with the new 3D kerb objects and a part of the body was scraping those objects.