Hi Filipe,
I can tell you für 2): No. At compile time, the variable name is replaced by a fixed memory address. There's no difference if the name is declared inside a procedure/function or in the main program. There is, however, a little space ("access RAM") which contains a bit "faster" variables. So, it can make a little difference if a variable is declared earlier or later in a program.
8-bit PIC controllers are a bit special, as in a sense they don't have RAM at all, they merely have up to several thousand processor registers. Accessing (simple, not array) variables is therefore very fast compared to other processor architectures.
Greets,
Kiste