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 5.8.2 Allocation of Executable Code for more details.
Interrupt functions (see 5.9.1 Writing an Interrupt Service Routine) however, are limited to one page in size and cannot be split over multiple pages.