First, if the answer matters then you shouldn't be using a compiler.
Second, regardless of the reason you want to know, the answer is to look in the source code. This is probably implemented as some kind of macro at compile time. If so, the source has to be where you can see it. If it calls a library routine, then it might not be available. However, you can still build a test program with it and then single step thru the delay in the program memory window in MPLAB to see what is going on.
Most likely, the odd numbers come from nested loops. The inner loop probably is the minimum necessary to do the loop end condition checking and looping, so comes out to however many cycles it comes out to. This could introduce strange looking prime factors into the max cycles.
In any case, this is a bad way to do delays of more than just a few cycles. You should never be anywhere near the maximum this function can delay. If you find yourself wanting to delay by more than a few µs, then you should re-think your architecture. Do longer timing with a regular periodic interrupt, for example.
Added:
I also just noticed that is said the maximum delays were approximately the number of cycles listed. You can't derive anything meaningful from the prime factors of approximate values.
<xc.h>at the definition (follow the trail if defined in a separate file included in this), this should help to answer the question. – Oli Glaser Nov 4 '12 at 14:02