Because the tower is probaly 'unreferenced'.
Functions start picking from scratch. Meaning, the tower is not picked. When no tower is picked, the actions run on all towers.
1/ If the tower has a turret behaviour, then use the 'on shoot' trigger. It is meant for this.
2/ More generaly. If you picked an object and want to call a function with actions that work for that object. Then add the expression object.UID as a parameter to the function call. And in the 'on function' you use the condition 'pick by UID' with UID= object.function.param(n).