Similar problem when the type is a pointer to member function:
void (Bar::*Method3(int x))(int)
{
    void (Bar::*member)(int);
    if (x < 0)
    {
        // #TEST#: EM3 Extract Method on next line
        member = &Bar::Operation1;
    }
    else
    {
        member = &Bar::Operation2;
    }
    return member;
}
Extract Method for EM3 yields:
void (Bar::* MyMethod(void (Bar::* member)
{
    member = &Bar::Operation1;
    return member;
}