What happens when you fall off the end of main() in a PIC?
You can easily answer this for yourself by looking the disassembly of the compiled code in MPLAB, for whatever compiler you happen to be using (and by stepping through the program using MPSIM). 

Typically it will start back again at the beginning rather than executing random stuff in the program memory, because the program will be entered with a 'call' in assembly language and will end with a 'return 0'. 

This is considered a "freestanding environment" because there is no operating system.

Officially, from the ISO/IEC 9899:1999 (E) C standard, "The effect of program termination in a freestanding environment is implementation-defined" (emphasis added). 

It is probably not a good idea to invoke implementation-defined behavior if it is not necessary.