Lane I don't know of any implementations that do this, but one could have an implementation that uses one calling convention, say everything on the stack, for extern "C" functions while the static member functions use a different one, say the first three in registers with the rest on the stack. This would cause problems when attempting to call the static member function from C library. For the example, the first three arguments would be whatever happened to be in those registers at the time of the call, the fourth parameter would contain the first parameter's data, etc.
This isn't exactly right. We might have objects of different sizes that keep them from lining up so nicely. You should still get the idea of why it's not portable to use static member functions as C library callbacks.