5.8.4 Function Size Limits
For all devices, the code generated for a regular function is limited only by the available program memory; however the longer jump sequences within a function if it is located across more than one page will decrease efficiency. See Allocation of Executable Code for more details.
Interrupt functions (see Interrupt Service Routines) however, are limited to one page in size and cannot be split over multiple pages.