This is a major problem since Arma 3 exists and even before regarding Arma 2. A engine based solution would remove this lack and would make it easier to handle remote executed functions by getting direct info about the executor. I would appreciate a quite quick solution because this is a terrible cheating possibility.
An example to prove the actual lack:
Our actors are: PlayerA (PA) and PlayerB (PB).
Our mentioned function can delete specific users data e.g. a house saved in database or a vehicle.
PA is just playing like each other.
PB is a hacker/cheater and wants to delete PAs user data. He requests PAs user data by remoteExec. He can do this because everyone can. He just has to give a player object as a param. He recieves the data and now he is going to sell (which means deleting) a house of PA. He has data of this house and executes the sell function remotely on the server. Param for this function would be id of the house and owner of this house (which is PA). He executes the function remotely and PAs house will be removed.
A scripted solution would be very "hacky". This would mean you had to check if the uid of player object is matching with the uid of the owner of the house. This would end in much more database traffic. Also this would slower the function at all. It isn't impossible to double check this but it is not possible in every situation.
The cheater/hacker can act as a other player regarding this problem. He can inject everything via another player. This would produce false positives and the cheater is still on the server.