Consider:
void f();
std::function<void()>{f};
The constructor of function requires a Callable argument ([func.wrap.func.con] paragraph 8) i.e. one for which INVOKE(f, void) is well-formed ([func.wrap.func] paragraph 2). INVOKE with a return type R performs implicit conversion to get from the return value of its callable to R ([func.require] paragraph 2). However "an expression e can be implicitly converted to a type T if and only if the declaration T t=e; is well-formed" ([conv] paragraph 3).
The declaration void t = f(); is clearly not well-formed, so this code is invalid.
Do we need to change the definition of implicit conversion to allow any expression to be implicitly converted to cv void, or would it be better to just special-case INVOKE(..., cv void)?
Note that static_cast<void> has a similar problem ([expr.static.cast] paragraph 4); this is seemingly contradicted by following paragraph 6: "Any expression can be explicitly converted to type cv void [...]".