For example, you might have a situation where your conditionals are calculated by two methods:
if (methodA() && methodB())
Now if you absolutely require that both methods be ran at this point (perhaps they do something else relevant, like mark down that they have been evaluated), then you should not short-circuit the call:
if (methodA() & methodB())
This guarantees the same result, but it also guarantees that both methods will run. In general it's almost never used in practice from what I've seen, and I would possibly argue that it's even bad practice.
As to the question of WHY is this functionality in some languages and not others - that's simply a question for the language designers. At best we could guess here what their intention was.