RPC will only call the function locally if you've set it to be that way using rset or the corresponding keywords
RPC will only call the function on peers that have been setup to receive such calls so if your code for the server is the same as the client then yes the server will also run the function
#will be called on all peers that has it
remote func rpc_function():
pass
#will only be called by master peers
puppet func rpc_function():
pass
#will be called on all peers(even server) and locally
remotesync func rpc_function():
pass