That code may be cleaner as long as you only have Bill and John, but it'll get damn messy as you add functionality.
Encapsulation is always desireable.
What if you have not two but 1000 actors, of different kind, weapons, characters, vehicles, whatever. How would your code look then?

Also, actions in 3dgs can hardy be compared to components. Maybe to a script component, but that's only one flavour of components you could have in a real component based architecture.