because the whole thing is that for a virtual function you can't just use a pointer to a function directly, since it needs to adjust the object pointer and lookup the correct override in the vtable
the taking of the address could generate a thunk that essentially does `foo->bar( args... );`