In not every case, we were actually performing a get() on the result of the web_backend operation. Instead we waited for the function that got passed as parameter to be executed and would then perform a get() in it. With std::launch::deferred this would never happen, cause the passed function would never get executed.