It's not actually a bug with your code, it's a bug with snap. Running a broadcast block in a ring, with an input puts the input in the sprite input in the broadcast block, when it's hidden.
for example, this script
will broadcast "test" to a sprite called "test", even though the broadcast block is not expanded.
edit: more about the broadcast bug here Can't broadcast to all in run block