Unfortunately, the addaction command doesn't work as... nicely as you or I would like it to. In short, the answer to everything is no.
You cannot make a radius for the action, but you can ensure that only the unit with the action can actually use it. Just make this the first line of the action's script:
? (_this select 0) != (_this select 1) : exit
However, you cannot pass parameters to the action's script, which is HIGHLY limiting and annoying. You will have to find some sort of a workaround, I'm afraid. Usually global variables work ok for this. Or, you can make a bunch of similar scripts, and depending on the situation, use a certain one in the action:
? Var > 1 : unit addaction ["Action", "action1.sqs"]
? Var < 1 : unit addaction ["Action", "action2.sqs"]
And so on. Both methods are crappy, but its the only way to really get around the problem.