You left out a 3rd variant:
bool hasSomethingToDo = f1() && f2() && f3();
if (hasSomethingToDo)
{
DoSomething();
}
and a 4th variant:
bool hasSomethingToDo = f1()
&& f2()
&& f3();
if (hasSomethingToDo)
{
DoSomething();
}
Usually, your functions are not that short as you show above. So, if the function calls are a bit more text, than I go for the 4th variant.
With one or two function calls, I go for the 1st variant. The second variant is the one I avoid as much as possible.
BTW: Execution time shoud not differ in a relevant manner - it's a question of style (if it's relevant, measure it!).
Cheers
Andi