PBP uses the same couple or three dozen variables over and again for it's routines. They are reused. Those variables aren't created again if you use the routine in several places. In an 16F877, with 370 bytes, you should have at least 330 bytes of RAM that you can assign for your own use. This all depends on your code, but you have to be doing some pretty drastic things, or have some huge arrays assigned to use up that much resource.

Btw... PBP doesn't swap RAM into codespace. RAM is RAM, and codespace is codespace, the two aren't mixed unless YOU deliberately do it in your program.