I see short-circuit for correct behavior all the time, most frequently in the format:
if (pointer && pointer->member == value)
Where you want to make sure a pointer you've been given isn't null before you try to dereference it. Without short-circuit, this becomes a segfault.