I'm not sure pointer arithmetic on function pointers is standard C. Using the -pedantic flag, gcc 4.5.2 does give a "warning: pointer to a function used in subtraction".
So, for an array of function pointer that would be legal behaviour, but for pointers to plain functions, it is undefined behaviour.