This technique is not useful in general as it is contrary to generally-accepted convention and leads to unreadable code. (Note that this technique is acceptable in other languages, such as perl, where it is a commonly-used idiom.)
One place you may be forced to use this technique is in a function-like macro.
#define foo(x, y) (((x) % 2) && (y))
You cannot write the macro as
#define foo(x, y) if ((x) % 2) (y)
Because that would mess up things like
if (a) foo(x, y); else bar();
The usual workaround of
#define foo(x, y) do { if ((x) % 2) (y); } while (0)
does not work with the comma operator.
for (i = 0, foo(x, y); i < 10; i++) ...
That said, any such use of this idiom should be well-commented.