Function pointers don't need it, member function pointers do.
Device::asyncUpdate
is member function, as you could guess because it is being bound to this
.
Here's a normative quote from n3337, 5.3.1/4
A pointer to member is only formed when an explicit & is used and its operand is a qualified-id not enclosed in parentheses.