Because the tower is probaly 'unreferenced'.
https://www.scirra.com/manual/75/how-events-work
Functions start picking from scratch. Meaning, the tower is not picked. When no tower is picked, the actions run on all towers.
2 solutions.
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).