Blueprint communication: Decoupling Events between sender and receiver objects

When Light1 calls the “subscribeTo”-method on EventService1, the EventService1-object would
store a reference to Light1. If the “toggle light”-event on the EventService1 gets called by any object it would notify all subscribed objects (in this case only Light1) by calling the event “toggleLight” inside of Light1. If Light1 doesn’t implement “toggleLight” then nothing happens otherwise it executes the implementation inside of Light1.

Sure, my diagram is very banal switching both lights off at the same time.
Taking your example: Imagine if one of the switches change the type of class to Switch2, then I would have to change the light blueprint and call Gets All Actors of Class [Switch] and Gets All Actors of Class [Switch2] to make it work again and subscribe to their events.