You can put subroutines anywhere you like and PBP worries about page swaps for you. If, however, you have real time or compiled code size issues, putting them at the beginning can help optimize. There are also special issues when crossing page boundaries that PBP *usually" takes care of - a notable exception is mentioned above.

I always put my subroutines at the end for readability. in 99% of cases this is fine.
These days I like to use 18F parts which tend to have a better sense of humour about these things, as well as usually being faster and having more memory. (at slightly highter cost)