Keep Bit Frequency Table
Although there is no deterministic way to get other operand back using only bit-wise operation, this may help.
You can keep a table to store the bit frequency. Then the number you want to remove from the OR result, decrease frequency of bits where the bit is 'set'(1) for this number. The places where the frequency is greater than zero, 'set' those bits in the answer.
Example:
A : 0101
B : 1110
------------
OR : 1111
[frequency]
+-+-+-+-+
|1|2|1|1|
+-+-+-+-+
Now, you have the OR and B, you want to get A back.
Decrease the frequency table in indices where B has set bits.
[frequency-updated]
+-+-+-+-+
|0|1|0|1|
+-+-+-+-+
As you can see, the non-zero indices indicates where the A's bits were set.
This process can be extended to set of N numbers, where you have bit-wise OR of N numbers and you want to know what the OR would be 'without' some number X from the set.
Complexity
Time Complexity: For a number N, time complexity for a single operation is log(N), since there are log(N) number of bits to iterate.
Space Complexity: For M amount of numbers with size N, space complexity is Mlog(N), since there are log(N) bits to store for all M numbers.
Thanks @hussein-hammoud for mentioning the complexity.